Android Gallery自定义风格


图片浏览gallery控件自定义风格,即加上灰色边框:
1、main.xml文件如下:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/widget0"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <Gallery  
  8.     android:id="@+id/Gallery"  
  9.     android:layout_width="fill_parent"  
  10.     android:layout_height="wrap_content"  
  11.     android:layout_centerInParent="true"  
  12.     />  
  13. </RelativeLayout>  
2、attrs.xml文件如下:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <declare-styleable name="Gallery1">  
  4.         <attr name="android:galleryItemBackground" />  
  5.     </declare-styleable>  
  6. </resources>  
3、Activity代码如下:
  1. public class gallery extends Activity {  
  2.     private int size;  
  3.     private List<Drawable> list = new ArrayList<Drawable>();  
  4.     @Override  
  5.     public void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         //全屏   
  8.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  9.        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  10.         setContentView(R.layout.main);  
  11.           
  12.         final Object data = getLastNonConfigurationInstance();  
  13.         if(data == null){  
  14.             getImage();  
  15.         }else{  
  16.             list = (List<Drawable>) data;  
  17.         }  
  18.           
  19.         final Gallery g = (Gallery) findViewById(R.id.Gallery);  
  20.         g.setAdapter(new ImageAdapter(this,list));  
  21.         //默认显示Gallery的中间一个图片   
  22.         g.setSelection(size/2);  
  23.     }  
  24.   
  25.     @Override  
  26.     public Object onRetainNonConfigurationInstance() {  
  27.         return list;  
  28.     }  
  29.   
  30.     //获取系统应用的图标   
  31.     private List<Drawable> getImage(){  
  32.         PackageManager packageManager = this.getPackageManager();  
  33.         Intent intent = new Intent(Intent.ACTION_MAIN);  
  34.         intent.addCategory(Intent.CATEGORY_LAUNCHER);  
  35.         List<ResolveInfo> infos = packageManager.queryIntentActivities(intent, 0);  
  36.         for(ResolveInfo info : infos){  
  37.             ActivityInfo ai = info.activityInfo;  
  38.             Drawable icon = ai.loadIcon(packageManager);  
  39.             list.add(icon);  
  40.        }  
  41.        return list;  
  42.     }  
  43. }  
  • 1
  • 2
  • 下一页

相关内容