歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android Gallery自定義風格

Android Gallery自定義風格

日期:2017/3/1 10:18:59   编辑:Linux編程
圖片浏覽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. final Object data = getLastNonConfigurationInstance();
  12. if(data == null){
  13. getImage();
  14. }else{
  15. list = (List<Drawable>) data;
  16. }
  17. final Gallery g = (Gallery) findViewById(R.id.Gallery);
  18. g.setAdapter(new ImageAdapter(this,list));
  19. //默認顯示Gallery的中間一個圖片
  20. g.setSelection(size/2);
  21. }
  22. @Override
  23. public Object onRetainNonConfigurationInstance() {
  24. return list;
  25. }
  26. //獲取系統應用的圖標
  27. private List<Drawable> getImage(){
  28. PackageManager packageManager = this.getPackageManager();
  29. Intent intent = new Intent(Intent.ACTION_MAIN);
  30. intent.addCategory(Intent.CATEGORY_LAUNCHER);
  31. List<ResolveInfo> infos = packageManager.queryIntentActivities(intent, 0);
  32. for(ResolveInfo info : infos){
  33. ActivityInfo ai = info.activityInfo;
  34. Drawable icon = ai.loadIcon(packageManager);
  35. list.add(icon);
  36. }
  37. return list;
  38. }
  39. }
Copyright © Linux教程網 All Rights Reserved