Android的一些小知识点
2012-11-06 10:57
369 查看
1.android获得硬件软件相关信息
2.android如何实现国际化
3.android进度条
在 Activity的 Title 中加入进度条
在 Activity 的标题栏中显示进度条不失为一个好办法,下面是实现代码:
Java代码
// 不明确进度条
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
setProgressBarIndeterminateVisibility(true);
// 明确进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
setProgress(5000);
分类:
android
锁定 Activity
运行时的屏幕方向
Xml代码
<activity android:name=".EX01"
android:label="@string/app_name"
android:screenOrientation="portrait" // 竖屏 , 值为 landscape 时为横屏
…………
</activity>
4.android初始化屏幕
全屏的 Activity
要使一个 Activity 全屏运行,可以在其 onCreate()方法中添加如下代码实现:
Java代码
// 设置全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 去除标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
锁定 Activity
运行时的屏幕方向
Xml代码
<activity android:name=".EX01"
android:label="@string/app_name"
android:screenOrientation="portrait" // 竖屏 , 值为 landscape 时为横屏
…………
</activity>
5.Android ListView样式
下面将对上述代码,做详细的解释,listView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到listView的长度(这也是为什么在开始的第一张图特别的标出列表长度),然后根据这个长度,调用getView()逐一绘制每一行。如果你的getCount()返回值是0的话,列表将不显示同样return1,就只显示一行。
系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用此方法。getView()有三个参数,position表示将显示的是第几行,covertView是从布局文件中inflate来的布局。我们用LayoutInflater的方法将定义好的vlist2.xml文件提取成View实例用来显示。然后将xml文件中的各个组件实例化(简单的findViewById()方法)。这样便可以将数据对应到各个组件上了。但是按钮为了响应点击事件,需要为它添加点击监听器,这样就能捕获点击事件。至此一个自定义的listView就完成了,现在让我们回过头从新审视这个过程。系统要绘制ListView了,他首先获得要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(实际上是一个ViewGroup),然后再实例并设置各个组件,显示之。好了,绘制完这一行了。那再绘制下一行,直到绘完为止。在实际的运行过程中会发现listView的每一行没有焦点了,这是因为Button抢夺了listView的焦点,只要布局文件中将Button设置为没有焦点就OK了。
6.Android 完全退出程序使用广播机制
//写一个广播的内部类,当收到动作时,结束activityprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);//这一句必须加上,不然虽然能退出,但报很多错误
finish();//到这里,多个activity可以关闭掉程序了 但是进程仍然存在,因此加上了下边一句话,可以杀死进程
android.os.Process.killProcess(android.os.Process.myPid());
}
};
7.Android RelativeLayout属性
Android RelativeLayout属性
// 相对于给定ID控件
android:layout_above
将该控件的底部置于给定ID的控件之上;
android:layout_below
将该控件的底部置于给定ID的控件之下;
android:layout_toLeftOf
将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf
将该控件的左边缘与给定ID的控件右边缘对齐;
android:layout_alignBaseline
将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop
将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom
将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft
将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight
将该控件的右边缘与给定ID的右边缘对齐;
// 相对于父组件
android:layout_alignParentTop
如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom
如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft
如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight
如果为true,将该控件的右部与其父控件的右部对齐;
// 居中
android:layout_centerHorizontal
如果为true,将该控件的置于水平居中;
android:layout_centerVertical
如果为true,将该控件的置于垂直居中;
android:layout_centerInParent
如果为true,将该控件的置于父控件的中央;
// 指定移动像素
android:layout_marginTop
上偏移的值;
android:layout_marginBottom
下偏移的值;
android:layout_marginLeft
左偏移的值;
android:layout_marginRight
右偏移的值;
example:
android:layout_below = "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = “10px”
8. Android如何设置图片的大小
<ImageViewandroid:layout_width="50dp"
android:layout_height="50dp"
android:scaleType="fitXY" />
也可以通过代码去实现
ImageView iv = (ImageView) findViewById(R.id.iv);
iv.setLayoutParams(new LayoutParams(300, 300));
iv.setScaleType(ScaleType.FIT_XY);
9.Android视频播放器
1.使用surfaceview主要是用来做渲染的
2.andorid 使用mediaplayer类来实现视频的播放需要将mediaplayer渲染到 surfaceview.getHolder()
3.surface在离开前台时
会销毁 要监听他的surfaceview的创建销毁改变的监听的方法
4.播放视频时需呀监听他的prepared方法
准备好了就播放
5.android 目前只支持渐进式下载的视频
不支持实时流媒体
10.Androi调用自己的播放器
Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType( Uri.parse("http://192.168.30.251/fwpbaGYpMnCAHVTbDqHY3tuVlE.mp4"),"video/*");
11.Android Content provider内容提供器
1使用contentprovider标准的接口
联系人
2.ContentResolver获得
3.URI
content:// 获得数据的一个字符串片段
4.UriMather
12.Android避免内存泄露的方法
当Activity中有对象的生命周期大于Activity时请使用getApplicationContext()方法
1.
不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的
2. 对于生命周期长的对象,可以使用application context
3.
避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化
13.设置背景图片
Resources resources=getBaseContext().getResources();Drawable hippoDrawable=resources.getDrawable(R.drawable.icon);
tv1.setBackgroundDrawable(hippoDrawable);
14.取得手机屏幕大小DisplayMetrics
TextView widthText=(TextView)findViewById(R.id.widthText);DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String str="手机屏幕宽为:"+dm.widthPixels+"
高:"+dm.heightPixels;
widthText.setText(str);
15.跑马灯效果:类似公交车滚动广告
android:ellipsize设置文字过长时,该控件如何显示。有如下值:start:省略号在前/end省略号在后面/middle省略号在中间/marquee跑马灯方式展示(动画横向移动)android:marqueeRepeatLimit设置重复滚动的次数,marquee_forever无限次滚动
android:focusableInTouchMode是否在触摸模式下获取焦点
android:focusable控件是否能够获取焦点
android:singleLine="true"
android:focusable="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusableInTouchMode="true"
16.android隐藏键盘
EditText et=(EditText)findViewById(R.id.edit);et.setInputType(InputType.TYPE_DATETIME_VARIATION_NORMAL);
相关文章推荐
- android 开发中遇到的一些小的知识点在此做一个记录(持续更新)
- Android开发网上的一些重要知识点
- Android中的一些小知识点
- Android开发网上的一些重要知识点_3
- Android的一些知识点
- Android开发网上的一些重要知识点
- Android开发网上的一些重要知识点 [3]
- Android系统:SystemUi需要注意的一些知识点
- android中一些容易让人模糊的重要的知识点1
- Android开发网上的一些重要知识点_4
- 【重走Android之路】【番外篇】有关于null的一些知识点
- Android开发,MapBox的使用及部分功能实现(二)----- draw、layer、以及一些杂的知识点
- Android开发网上的一些重要知识点 [4]
- Android开发中的一些小知识点记录(21-40)
- 转载- Android开发网上的一些重要知识点
- android开发一些小知识点记录
- Android学习之路小结1(加一些小知识点)
- Android开发网上的一些重要知识点
- Android中消息机制中一些细节知识点
- Android开发网上的一些重要知识点 [1]