Android的一些小知识点

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的话,列表将不显示同样return 1,就只显示一行。

系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用此方法。getView()有三个参数,position表示将显示的是第几行,covertView是从布局文件中inflate来的布局。我们用LayoutInflater的方法将定义好的vlist2.xml文件提取成View实例用来显示。然后将xml文件中的各个组件实例化(简单的findViewById()方法)。这样便可以将数据对应到各个组件上了。但是按钮为了响应点击事件,需要为它添加点击监听器,这样就能捕获点击事件。至此一个自定义的listView就完成了,现在让我们回过头从新审视这个过程。系统要绘制ListView了,他首先获得要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(实际上是一个ViewGroup),然后再实例并设置各个组件,显示之。好了,绘制完这一行了。那再绘制下一行,直到绘完为止。在实际的运行过程中会发现listView的每一行没有焦点了,这是因为Button抢夺了listView的焦点,只要布局文件中将Button设置为没有焦点就OK了。

6.Android 完全退出程序使用广播机制

    //写一个广播的内部类,当收到动作时,结束activity   

    private 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与给定IDbaseline对齐;

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如何设置图片的大小

<ImageView

        android: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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值