Android常用控件介绍
Widget简介
二、AppWidget 框架的主要类介绍 1. AppWidgetManger 类 bindAppWidgetId(int appWidgetId, ComponentName provider) 通过给定的ComponentName 绑定appWidgetId getAppWidgetIds(ComponentName provider) 通过给定的ComponentName 获取AppWidgetId getAppWidgetInfo(int appWidgetId) 通过AppWidgetId 获取 AppWidget 信息 getInstalledProviders() 返回一个List<AppWidgetProviderInfo>的信息 getInstance(Context context) 获取 AppWidgetManger 实例使用的上下文对象 updateAppWidget(int[] appWidgetIds, RemoteViews views) 通过appWidgetId 对传进来的 RemoteView 进行修改,并重新刷新AppWidget 组件
EditText
EditText 相当于很多程序中的TextField,是一个可以让用户输入文本的组件,是用户 和程序之间用于传输数据的纽带,通过它用户可以把数据传送给Android程序。 示例代码:
– – – – – <EditText android:id="@+id/txtTest“ android:imeOptions="actionGo" android:layout_width="100dp“ android:layout_height="wrap_content"> </EditText>
– – – – – – <TextView android:text=“HelloWorld" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="61dip" android:layout_y="69dip“/>
3
Widget简介
App Widget 就是一个 AppWidgetProvider+ 一个 UI 界面显示(预先绑定了好多 Intent), 界面上的信息可以通过程序控制而改变,单击 Widget 上的控件只能激发发送一个 Intent, 或发出一个 Service 的启动通知。而 AppWidgetProvider 可以拦截这个 Intent,而进行相应 的处理(比如显示新的信息)。 一、AppWidget 框架类 1. AppWidgetProvider :继承自 BroadcastRecevier , 在AppWidget 应用 update、enable、 disable 和 delete 时接收通知。其中onUpdate、onReceive 是最常用到的方法,它们接收更 新通知。 2. AppWidgetProvderInfo:描述 AppWidget 的大小、更新频率和初始界面等信息,以 XML 文件形式存在于应用的 res/xml/目录下。 3. AppWidgetManger :负责管理 AppWidget ,向 AppwidgetProvider 发送通知。 4. RemoteViews :一个可以在其他应用进程中运行的类,向 AppWidgetProvider 发送通 知。
Hale Waihona Puke Android应用开发04常用控件介绍
• • • • • • • • • Widget简介 TextView EditText ImageView ImageButton ListView ListAdapter VideoView SurfaceView
2
Widget简介
Android 开发应用除了程序应用,还有 App Widget 应用。Widget(微件)是 Android1.5版所引进的特性之一。App Widget 是在桌面上的一块显示信息的东西, 通过单击 App Widget 跳转到程序入口类。 而系统自带的程序,典型的 App Widget 是music,这个 Android 内置的音乐播放小程序 。这是一个典型的App Widget+app 应用。就是一个程 序既可以通过 App Widget 启动 ,也可以通过 App 启动。
ImageView
// 设置想要的大小 int newWidth1 = newWidth; int newHeight1 = newHeight; // 计算缩放比例 float scaleWidth = ((float) newWidth1) / width; float scaleHeight = ((float) newHeight1) / height; // 取得想要缩放的matrix参数 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); // 得到新的图片 Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true); return newbm;
4. 利用findViewById()方法获取main.xml 中的TextView mTextView01 = (TextView) findViewById(R.id.TextView01); 5. 设置TextView 标签内容 mTextView01.setText(“HelloWorld”);
EditText
EditText继承自TextView,所以拥有TextView的所有属性。另外,EditText还有属于自 己的属性。android:hint是EditText的默认提示文字,一般用于提示用户输入。 android:textColorHint是提示文字的颜色,如果不设置,就为默认提示颜色。 android:maxLength表示最大输入长度。android:password=“true”就可以实现这一密码输 入功能。 android:numeric=“signed” 表示输入数字的类型,可以是Integer,一共有三种分别 为integer(正整数)、signed(带符号整数)和decimal(浮点数)。 android:phoneNumber=“true”用于专门输入电话号码的文本框也是大有用途,有了 他我们对是否是电话号码的校验就容易的多了(因为字符是正确的,只要校验格式 )。通过 设置android:phoneNumber=“true”就可以把EditText变成只接受电话号码输入的文本框, 连软键盘都已经变成拨号专用软键盘了,所以不用再担心输入其他字符了。
Widget简介
updateAppWidget(ComponentName provider, RemoteViews views) 通过 ComponentName 对传进来的 RemoeteView 进行修改,并重新刷新AppWidget 组件 updateAppWidget(int appWidgetId, RemoteViews views) 通过appWidgetId 对传进来的 RemoteView 进行修改,并重新刷新AppWidget 组件 2. 继承自 AppWidgetProvider 可实现的方法为如下: (1) onDeleted(Context context, int[] appWidgetIds) (2) onDisabled(Context context) (3) onEnabled(Context context) (4) onReceive(Context context, Intent intent) Tip:因为 AppWidgetProvider 是继承自BroadcastReceiver 所以可以重写onRecevie 方法, 当然必须在后台注册Receiver (5) onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
}
ImageView
调用: 获得18×18的图片 Bitmap bm = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.icon)); Bitmap newBm = scaleImg(bmImg , 18, 18); imageView.setImageBitmap(newBm ); android:scaleType: android:scaleType是控制图片如何resized/moved来匹对ImageView的size。
ImageView
2、在XML布局文件中建立ImageView:
–<ImageView android:src="@drawable/picture" – android:layout_width="wrap_content" – android:layout_height="wrap_content"></ImageView>
3、运行程序,查看效果:
ImageView
ImageView可以设置图片的可见性,设置颜色、设置图片指定大小。 1、public voidsetVisibility (int visibility) visibility One of VISIBLE, INVISIBLE, or GONE 但是在调用此方法的时候 image.setVisibility(visibility) 其中visibility是int型的参数。对应上面:VISIBLE=0x00000000;INVISIBLE=0x00000004; GONE=0x00000008。 即: image.setVisibility(0x00000000) 表示显示; image.setVisibility(0x00000004)表示隐藏; image.setVisibility(0x00000008)表示view不存在。