ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:24.29KB ,
资源ID:10440214      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10440214.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安卓笔记.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安卓笔记.docx

1、安卓笔记安卓笔记Handler的使用:先创建一个handler对象,然后调用post方法将要执行的线程对象添加到队列当中,将要执行的操作写在线程对象的run方法中也可以使用handler的sendmessage方法,将一个message添加到消息队列中去:具体是,先创建一个message对象msg,然后设置msg的arg1的参数。然后用sendmessage将msg发送到消息队列,然后重写一个内部类handler,复写其中的handlemessage方法。当接受到msg时,自动调用handlemessage方法。所以可以在这个方法中实现一些内容。说明:用这种方法实际上runnable使用的还是

2、主线程。可以用java中创建线程的方法来创建子线程。Handler对线程的处理不是启动一个新线程,而是调用runnable的run函数。具体的实例:package com.example.handlertest;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.B

3、utton;import android.widget.ProgressBar;public class MainActivity extends Activity private Button btn1 = null; private Button btn2 = null; private ProgressBar pb = null; protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn

4、1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); btn1.setOnClickListener(new listen1(); btn2.setOnClickListener(new listen2(); pb = (ProgressBar)findViewById(R.id.progressBar1); class listen1 implements OnClickListener public void onClick(View v) pb.setVisibility(View.VIS

5、IBLE); System.out.println(visible de zhi :+View.VISIBLE); updateHandler.post(updateThread); class listen2 implements OnClickListener Override public void onClick(View v) pb.setProgress(0); updateHandler.removeCallbacks(updateThread); Handler updateHandler = new Handler() public void handleMessage(Me

6、ssage msg) super.handleMessage(msg); pb.setProgress(msg.arg1); updateHandler.post(updateThread); ; Runnable updateThread = new Runnable() int i =0; public void run() i=i+10; / System.out.println(start Thread); Message msg = updateHandler.obtainMessage(); msg.arg1=i; try Thread.sleep(1000); catch (In

7、terruptedException e) e.printStackTrace(); if(i100) updateHandler.removeCallbacks(updateThread); System.out.println(Thread stop+i); / i=0; if(i=100) updateHandler.sendMessage(msg); ;Bundle的使用Bundle是一个以String类型为键,以各种类型(基本数据类型)为值的一个map。HandlerThread的使用HandlerThread的使用解决了handler队列使用主线程的问题。msg.obj=abc;

8、/用以传递一个对象msg.setData /用以传递一个bundle类型的数据先生成一个handlerThread对象,然后调用start方法,然后使用getlooper方法,生成一个looper,传入到myhandler中去,myhandler为继承自handler 的类,需要复写其中的构造方法和handlermessage方法。具体事例:package com.example.handlertest;import android.os.Bundle;import android.os.Handler;import android.os.HandlerThread;import androi

9、d.os.Looper;import android.os.Message;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;public class MainActivity extends Activity private Button btn1 = null; private Button btn2 = null; privat

10、e ProgressBar pb = null; protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println(mainThread : +Thread.currentThread().getId(); System.out.println(mainThread Name : + Thread.currentThread().getName(); HandlerThr

11、ead handlerThread = new HandlerThread(handlerThread); handlerThread.start(); myHandler handler = new myHandler(handlerThread.getLooper(); Message msg = handler.obtainMessage(); / msg.obj=abc; /用以传递一个对象 Bundle data = new Bundle(); data.putInt(args, 1); data.putString(name, zhandsan); msg.setData(data

12、); /用以传递一个bundle对象 msg.sendToTarget(); btn1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); btn1.setOnClickListener(new listen1(); btn2.setOnClickListener(new listen2(); pb = (ProgressBar)findViewById(R.id.progressBar1); class listen1 implements OnClickListener public void

13、 onClick(View v) class listen2 implements OnClickListener public void onClick(View v) class myHandler extends Handler myHandler() myHandler(Looper looper) super(looper); public void handleMessage(Message msg) super.handleMessage(msg); Bundle b = msg.getData(); int age = b.getInt(args); String name =

14、 b.getString(name); System.out.println(args is :+age + name is :+ name); System.out.println(handler Thread :+Thread.currentThread().getId(); System.out.println(handler Thread Name:+Thread.currentThread().getName(); ; Sqlite:创建:要使用sqlitedatabase,就需要使用sqliteopenhelper类,又由于sqliteopenhelper是一个抽象类,所以需要写一

15、个类来继承自它。/sqliteopenhelper这个类作为一个访问数据库的助手类,提供了两个方面的内容/第一,getReadbleDatabase() ,getWritableDatabase(),可以获得sqlitedatabase对象,通过该对象对数据库进行操作/第二,通过oncreate()和onupdate,允许我们在创建数据库和升级数据库的时候,进行自己的操作MyDatabaseHelper dbHelper = new MyDatabaseHelper(getApplicationContext(), caotang); /只有调用了getWritableDatabase()方法

16、,才能生成一个数据库 SQLiteDatabase db = dbHelper.getWritableDatabase();当要向数据库中存储数据时,要用到contentvalues插入: /想对该对象当中插入键值对,其中键是列名,值是插入到这一列的值,值的类型必须和列所允许的类型对应 ContentValues values = new ContentValues(); values.put(id,1); values.put(name, zhangsan);然后生成一个数据库对象,执行插入命令MyDatabaseHelper dbHelper = new MyDatabaseHelper(

17、getApplicationContext(), caotang); SQLiteDatabase db = dbHelper.getWritableDatabase(); db.insert(user, null, values);更新:基本的插入语法:update student set xxx = xxx where sid = 2;/第一个参数,要更新的表名;第二个参数,一个contentvalues对象;第三个参数,是where子句 db.update(user, values, id=?, new String1);要用到update方法,其中?是个占位符,具体的内容写在Strin

18、g数组里面。MyDatabaseHelper dbHelper = new MyDatabaseHelper(getApplicationContext(), caotang); /只有调用了getWritableDatabase()方法,才能生成一个数据库 SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(name, lisi); /第一个参数,要更新的表名;第二个参数,一个contentvalues对象;第三个参数,是where

19、子句 db.update(user, values, id=?, new String1);查询:用到了database的query方法,该方法参数众多,public Cursor query (String table, String columns, String selection, String selectionArgs, String groupBy, String having, String orderBy)Table表示的是表名;columnsMyDatabaseHelper dbHelper = new MyDatabaseHelper(getApplicationCont

20、ext(), caotang); /只有调用了getWritableDatabase()方法,才能生成一个数据库 SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query(user, new Stringid,name, id=?, new String 5, null, null, null); while (cursor.moveToNext() String name = cursor.getString(cursor.getColumnIndex(name); System.out.prin

21、tln(name); XX地图:private BMapManager mBMapManager; / 加载地图的引擎在setContentView(R.layout.myoverlay_activity);之前要初始化BmapManagermBMapManager = new BMapManager(getApplicationContext(); mBMapManager.init(KEY, new MKGeneralListener() Override public void onGetPermissionState(int arg0) if (arg0 = 300) System.o

22、ut.println(输入的key不正确); Override public void onGetNetworkState(int arg0) / TODO Auto-generated method stub 然后就可以实例化mapview,最后可以得到一个MapController通过:mapController = mapView.getController();/ 定义一个经纬度,表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储 GeoPoint geoPoint = new GeoPoint(int) (39.963175 * 1E6), (int) (116.400244

23、* 1E6);mapController.setCenter(geoPoint); mapController.setZoom(12); /显示交通图/ mapView.setTraffic(true); /显示卫星图/ mapView.setSatellite(true);地图覆盖物: Overlay:Overlay是一个基类,它表示可以显示在地图上方的覆盖物。 从2.0.0开始,SDK不支持直接继承Overlay , 用户可通过继承ItemizedOverlay来添加覆盖物。 ItemizedOverlay自定义覆盖物或标注管理类通过ItemizedOverlay可以向地图添加一个或多个自

24、定义覆盖物或标注。 添加覆盖物的一般流程:1. 用OverlayItem 准备overlay数据。2. 创建ItemizedOverlay实例,调用 addItem(OverlayItem) 接口添加overlay. 3. 若一次性添加的overlay数据较多,可以使用 addItem(List) 接口. 3. 调用MapView.getOverlays().add()方法添加overlay到mapview中。4. 调用MapView.refresh() 使Overlay生效。OverlayItem表示单个overlay数据,如自定义标注,建筑等。OverlayItem是ItemizedOve

25、rlay的基本组件, OverlayItem存储的overlay数据通过ItemizedOverlay添加到地图中。给地图添加自定义view:viewCache = getLayoutInflater().inflate(R.layout.custom_text_view, null); 得到一个viewpopupInfo = (View) viewCache.findViewById(R.id.popinfo); popupLeft = (View) viewCache.findViewById(R.id.popleft); popupRight = (View) viewCache.fin

26、dViewById(R.id.popright); popupText =(TextView) viewCache.findViewById(R.id.textcache);button = new Button(this); /创建一个button对象,需要一个context,所以将this传进去 button.setBackgroundResource(R.drawable.popup);然后在继承的ItemizedOverlay中的ontap添加事件,如果要显示pop的话,要使用pop.showpopup(bitmap,geopoint,在y轴的偏移量),所以要建一个bitmap数组,里

27、面存储着三张图片。建一个类,将一个view编程一个bitmap,其实就是显示view的缩略图。最后写一个popup监听器,根据得到的index,来进行相应的处理,最后都得mMapView.refresh();下,来更新界面。安卓界面:可以新建一个xml,这个是设置空间的背景,其中可以设置颜色和圆角弧度(放在drawable下) 然后可以新建一个xml设置点击事件,如击中后更改颜色(放在drawable下)selector xmlns:android= 还可以新建一个xml,用于保存一些颜色信息(放在values文件夹下) #ff494949 #ffffffff #ff333333 #00000000 #ffdddddd color name=color_bla

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1