android开发中代码片段集合

来源:互联网 发布:windows 8 apart from 编辑:程序博客网 时间:2024/06/18 03:47
本文中所提及的代码往往只有一行或短短几行就可能完成某种效果和功能,当我们不知道答案的时候,通常会花费了我们很多时间去google或baidu来寻找。这里对遇到的问题作个记录整理下,方便以后的查找,同时也希望能帮到你,当然更多的可能是你已经知道答案了,下面的对你来说 so easy 微笑

http://blog.csdn.net/baimy1985/article/details/8172160

1.   如何设置通知栏下拉不可用

        有时候在一个界面不想让通知栏下拉的消息就是这个代码了, NotificaionManager里的一个方法。

[java] view plaincopy
  1. NotificationMgr.getDefault().getStatusBarMgr().enableExpandedView(false);     

2 . 设置actionBar的图标在屏幕底部显示

        android 3.0版本增加的功能,类似menu的作用,在官方的例子中,图标都是在屏幕顶部的,前提是你上面有足够的空间,如果想把actionBar的图标放下屏幕底部就要用下面的代码了 ,在Androidmanifest.xml文件中activity标签中添加

[java] view plaincopy
  1. android:uiOptions="splitActionBarWhenNarrow"  

3 . 代码设置文本点击按下颜色变化

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item android:state_pressed="true"  
  4.       android:color="#ffff0000"/> <!-- pressed -->  
  5.     <item android:state_focused="true"  
  6.       android:color="#ff0000ff"/> <!-- focused -->  
  7.     <item android:color="#ff000000"/> <!-- default -->  
  8.  </selector>  
         上面代码是一个选择器,通常情况我们都在布局文件中添加这样的代码android:background = "@drawable/选择器的文件名" 来实现背景或颜色切换的,可要是用对应功能的代码实现是什么样子呢?
[java] view plaincopy
  1.     <strong>ColorStateList.java 这个类 </strong>  
  2.     Button btn=(Button)findViewById(R.id.btn);  
  3.     Resources resource=(Resources)getBaseContext().getResources();  
  4.        ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);  
  5.        if(csl!=null){  
  6.        btn.setTextColor(color_state_list);//设置按钮文字颜色  
  7. }  

         这里要提一下 setTextColor这个方法的参数类型是int,而R.drawable.选择器的文件名也是个int型变量,代码编译不会报错,但不会起作用。如果你是动态的生成一些button或textView而又不能使用布局文件,你会很想念这个ColorStateList.java 这个类的


4. setContentView和inflate区别:

setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来


5. 美化我们的seekbar

    换了图片,滑块图片只显示一半怎么办? ,看下面的代码和代码注释你会找到答案的

[html] view plaincopy
  1. <SeekBar android:id"@+id/song_progress"  
  2.     android:thumb="@drawable/sound_progressbar_slider"   //   滑块的图片  
  3.     android:progressDrawable ="@drawable/sound_seekbar_img"     //进度条的图片设置,对应的是一个xml文件,功能就是selector的效果  
  4.     android:thumbOffset="16dip"                          //   这个保证滑块中心和进度条首尾两端的中心点是一致的  
  5.     android:paddingLeft="16dip"                          //   保证滑块显示全部,没有它滑块在首尾两端只会显示一半,右一半,左一半。  
  6.     android:paddingRight="16dip"                         //   同上  
  7.     android:layout_gravity="center_horizontal"  
  8.     android:layout_width="284dip"                        //   进度条的宽度加上滑块的宽度,可能需要微调下  
  9.     android:minHeight="33dip"                            //   高度要和滑块图片的高度和保持一致,最好这样做,  
  10.     android:maxHeight="33dip"                            //   同上  
  11.     android:layout_height="33dip" />  

6  两张图片叠加成一张图

     这个代码也是之前在网上搜到的,只是实在找不到原始出处了。当然还有别的方法实现叠图的效果,这个经测试验证可用,仅此而已。

[java] view plaincopy
  1. Bitmap bitmap1 = ((BitmapDrawable) getResources().getDrawable( R.drawable.ic_default_slide)).getBitmap();  
  2. Bitmap bitmap2 = ((BitmapDrawable) getResources().getDrawable(   R.drawable.ic_slide_player)).getBitmap();  
  3.   
  4. Drawable[] array = new Drawable[2];  
  5. array[0] = new BitmapDrawable(bitmap1);  
  6. array[1] = new BitmapDrawable(bitmap2);  
  7. LayerDrawable la = new LayerDrawable(array);  
  8. // 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom  
  9. la.setLayerInset(00000);  
  10. la.setLayerInset(120202020);  
  11. im.setImageDrawable(la);  

  7     按XY轴比例缩放图片        

[html] view plaincopy
  1. <strong> ImageView.ScaleType.FIT_XY缩放图片使用XY  
  2.  ImageView.ScaleType.center:图片位于视图中间,但不执行缩放。</strong>  
  3.  ImageView.ScaleType其余的值,感觉没有前两个常用         
  4.      ImageView.ScaleType.CENTER_CROP 按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者大于相应的视图的维度  
  5.      ImageView.ScaleType.CENTER_INSIDE按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者小于相应的视图的维度  
  6.      ImageView.ScaleType.FIT_CENTER缩放图片使用center  
  7.      I mageView.ScaleType.FIT_END缩放图片使用END  
  8.      ImageView.ScaleType.FIT_START缩放图片使用START  
  9.      ImageView.ScaleType.MATRIX当绘制时使用图片矩阵缩放  


8      去掉TabHost中Tab间的分割线

         网上可以搜到很关于如何去Tabhost下面的白色底线,不过好像对tab标签间的分割线如何去掉却说的比较少,也许遇到这个问题的同学很少吧。

[java] view plaincopy
  1. TabWidget ll = (TabWidget) a.findViewById (R.id.buttonbar);  
  2. <strong>ll.setDividerDrawable( null);</strong>  
  3.   
  4. tabHost = getTabHost();  
  5. <strong>tabHost.getTabWidget().setDividerDrawable(null);   </strong>  
          看到了吧,找到Tabwidget对象按加粗部分设置一下就好了


9    android 4.0的多选列表使用

        这个用着还是挺方便的。

[java] view plaincopy
  1.    ListView  mList = getListView();     
  2.       
  3.    ModeCallback multiListener = new ModeCallback();  
  4.    mList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);  
  5.    mList.setMultiChoiceModeListener(multiListener);   //要添加这个监听  
  6.   
  7. public class ModeCallback  implements ListView.MultiChoiceModeListener  //当然这里也要实现一些必要的方法  




0 0