`
ielad
  • 浏览: 3512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

学习了Android环境搭建和常用布局,常用组件应用和高级组件应用,Socket网络编程和IO处理,多线程处理及应用,广播,服务SQLite存储SQL语句实现,SD卡存储等相关内容。在学习过程中,自己也做了一些小的应用,了解blue tooth 、WIFI、GPS在And-roid API中的应用。 比如我走过的项目: ***自传瓶开始**** 自传瓶:先从布局着手:用的帧布局FrameLayout,有个imageView 背景图片,一个自定义视图 cl.ad.GraphicsView 一个ImageView视图 AndroidManifest.xml android:screenOrientation="landscape"。 landscape是横向,portrait是纵向新建一个文件夹 layout-land 重新写main.xml 两个类:一个是Activity类一个是自定义视图类 Activity类中 设置自定义视图为当前屏幕,用到Animation 动画这个类,用到了handler类,对于异步消息的处理,和Thread以及 Service等一起使用的时候达到很好的效果它是Runnable和Activity交互的桥梁,通过不同的Message执行不同的任务 handleMessage 发送消息任务 removeMessage 取出消息 自定义视图类:定义中心点 x,y 角度,用三种瓶子的图片,正常的瓶子,模糊的瓶子,黑色阴影的瓶子,还要计算步长 设置构造方法,然后定义初始化方法 从资源文件中中获取3种瓶子的图片id, 接下来就是 绘图onDraw方法了 根据瓶子高度和x周计算出瓶子的位置 声明一个矩阵Matrix matrix.setRotate 通过它设置瓶子的旋转角度 setAntiAlias给画笔加上抗锯齿标志对 黑影瓶子 进行 位移Bitmap canvas.drawBitmap 画一个位图改变矩阵 //平移到相应位置 // 画布还原 中间还需要获取它的步长,对瓶子是否旋转进行分析还需要Handler 声明,设置发送延迟消息,针对那个旋转的图片,Handler1.sendEmptyMessageDelayed(i, 10L); // 发送消息给UI主线程 最后是触摸动作监听事件onTouchEvent MotionEvent.getAction()获取事件动作,返回正被执行的动作种类: this.mHandler.sendEmptyMessage 发送消息给UI主线程 还有一个执行startAnim() 执行动画开始的方法生成随机的方向 Math.random() 在进行判断 发送延迟消息 ***自传瓶结束**** ***7键开关SwitchPro Widget 开始**** 该项目是一款窗口小部件应用程序,可用于开启/关闭多种系统功能,支持多种自定义设置,比原生的电量控制开关好用很多。软件功能:WIFI、蓝牙、GPS、自动同步、屏幕亮度、飞行模式等 本项目大量使用了Android的线性布局、控件、事件、监听、服务、广播,本人主要负责:Widget、配置界面的布局、WIFI、蓝牙、GPS、自动同步、屏幕亮度(30%->50%->100%->Auto)、飞行模式的相关操作,! 这个项目做起来是最费劲的一个,因为做这个之前没有接触过窗口小部件,没有用到过 PreferenceScreen它不仅可以作为设置界面显示,而且还能够启动activity PreferenceCategory 偏好种类 ListPreference 实现了国际化values-zh-rCN 其他用的都是Linear布局设置好多ImageView 还要加好多权限,比如访问网路权限,类:MainWidgetProvider extends AppWidgetProvider private RemoteViews buildAndUpdateButtons PendingIntent 换种说法Intent 字面意思是意图,即我们的目的,我们想要做的事情,在activity中,我们可以立即执行它 PendingIntent 相当于对intent执行了包装,我们不一定一定要马上执行它,我们将其包装后,传递给其他activity或application 这时,获取到PendingIntent 的application 能够根据里面的intent 来得知发出者的意图,选择拦击或者继续传递或者执行, 我觉得两者之间最大的区别就是Intent是当时就反应,而PendingIntent则可以不立刻反应,这就是为什么设置闹钟的时候用的是PendingIntent而不是Intent public class ConfigPreferenceActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{ 利用广播 GPS需要条用系统的GPS页面 APN 平字符串 CLDD:在补充下 ***7键开关SwitchPro Widget 结束**** ***KDWB 开始**** 口袋微博需要一个服务器,大概有这几项:注册登录发布微博页面查看日志页面:发表,修改,评论,删除查看相册我的好友:添加搜索好友访问其他用户微博: 要连接的服务器的地址。和本机IP地址匹配。共有9张表: 2个Servlet和Anction Android版:定义好布局,写相应的Activity类用到适配器BaseAdapter LoginActivity获取输入的用户名和密码 etUid.getEditableText().toString().trim() //读取服务器发来的消息 //收到的消息为登录成功消息LOGIN_SUCCESS //收到的消息为登录失败 //方法:将用户的id和密码存入Preferences //方法:从Preferences中读取用户名和密码 Socket socket = null; //声明Socket对象 DataInputStream din = null; //声明数据输入流对象 DataOutputStream dout = null; //声明数据输出流对象 //方法:断开连接,释放资源 intent.putExtra("uno", uno); //设置Extra字段 UploadActivity //方法:与服务器交互,创建一个新相册 new Thread(){ public void run(){ Looper.prepare(); //启动一个消息循环 mc.dout.writeUTF("<#NEW_ALBUM#>"+newAlbum+"|"+uno); //向服务器发出创建新相册的请求 String reply = mc.din.readUTF(); //接收服务器的消息 //执行本线程中的消息队列 //在线程最后关闭消息队列 //一个一个字节的发 SharedPreferences是Android平台上一个轻量级的存储类类似过去Windows系统上的ini配置文件,这样对于内存资源占用比较好 ***KDWB 结束**** ***泡泡 开始**** surfaceView是在一个新起的单独线程中可以重新绘制画面 SurfaceView由于可以直接从内存或者DMA等硬件接口取得图像数据,因此是个非常重要的绘图容器 raw下面放一个音乐文件一个Activity类一个模型类定义几个常量 泡泡的最大小半径,每次增大的强弱度 /**泡泡实体类*/x, y, radius 对泡泡的开始暂停更新,添加泡泡的方法 // 结束后播放Mp3 onCompletion synchronized (LOCK) {加 线程同步锁的功能 if (running) { mp.seekTo(0); players.add(mp); BubblesActivity extends Activity implements Callback,OnTouchListener // 漂浮物视图类 //浮出表面支持物 //游戏循环 // Paint 重绘空间 背景 //泡泡颜色 //设置触摸 // 绘制图形、、 draw() //得到图片 // 绘制圆形物体 // 漂浮物销毁 // 游戏进行循环GameLoop extends Thread onTouch触摸事件 MotionEvent.ACTION_DOWN ***泡泡 结束****

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics