Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 控件之Gallery圖片集

Android 控件之Gallery圖片集

編輯:Android開發實例

  Gallery是Android中的圖片庫控件。先看效果,爽一番

 

 源碼下載

 一、簡介

  在中心鎖定,水平顯示列表的項。

二、實例

1.布局文件

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout 
  3.   xmlns:android="http://schemas.android.com/apk/res/android" 
  4.   android:layout_width="fill_parent" 
  5.    android:orientation="vertical" 
  6.   android:layout_height="wrap_content"> 
  7.     
  8.   <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery" 
  9.  android:layout_width="match_parent" 
  10.  android:layout_height="wrap_content" 
  11. /> 
  12.  
  13. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  14.     android:orientation="vertical" 
  15.     android:layout_width="match_parent" 
  16.     android:layout_height="wrap_content"> 
  17.  
  18.     <Gallery android:id="@+id/gallery1" 
  19.         android:layout_width="match_parent" 
  20.         android:layout_height="wrap_content" 
  21.         android:gravity="center_vertical" 
  22.         android:spacing="16dp" 
  23.     /> 
  24.  
  25. </LinearLayout> 
  26.  
  27.  
  28. </LinearLayout> 
  29.  
  30.    
  31.  

 2.屬性文件

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <resources> 
  4.  
  5.     <declare-styleable name="TogglePrefAttrs"> 
  6.         <attr name="android:preferenceLayoutChild" /> 
  7.     </declare-styleable> 
  8.       
  9.     <!-- These are the attributes that we want to retrieve from the theme  
  10.          in view/Gallery1.java --> 
  11.     <declare-styleable name="Gallery1"> 
  12.         <attr name="android:galleryItemBackground" /> 
  13.     </declare-styleable> 
  14.       
  15.      <declare-styleable name="LabelView"> 
  16.         <attr name="text" format="string" /> 
  17.         <attr name="textColor" format="color" /> 
  18.         <attr name="textSize" format="dimension" /> 
  19.     </declare-styleable> 
  20. </resources> 
  21.  

 

3.代碼

  1. /**  
  2.  *   
  3.  */ 
  4. package wjq.WidgetDemo;  
  5.  
  6. import android.R.layout;  
  7. import android.app.Activity;  
  8. import android.content.Context;  
  9. import android.content.res.TypedArray;  
  10. import android.database.Cursor;  
  11. import android.os.Bundle;  
  12. import android.provider.Contacts.People;  
  13. import android.view.ContextMenu;  
  14. import android.view.MenuItem;  
  15. import android.view.View;  
  16. import android.view.ViewGroup;  
  17. import android.view.ContextMenu.ContextMenuInfo;  
  18. import android.widget.BaseAdapter;  
  19. import android.widget.Gallery;  
  20. import android.widget.ImageView;  
  21. import android.widget.SimpleCursorAdapter;  
  22. import android.widget.SpinnerAdapter;  
  23. import android.widget.Toast;  
  24. import android.widget.AdapterView.AdapterContextMenuInfo;  
  25.  
  26. /**  
  27.  * @author 記憶的永恆  
  28.  *   
  29.  */ 
  30. public class GalleryDemo extends Activity {  
  31.  private Gallery gallery;  
  32.  private Gallery gallery1;  
  33.  
  34.  /*  
  35.   * (non-Javadoc)  
  36.   *   
  37.   * @see android.app.Activity#onCreate(android.os.Bundle)  
  38.   */ 
  39.  @Override 
  40.  protected void onCreate(Bundle savedInstanceState) {  
  41.   // TODO Auto-generated method stub  
  42.   super.onCreate(savedInstanceState);  
  43.   setContentView(R.layout.gallerypage);  
  44.   gallery = (Gallery) findViewById(R.id.gallery);  
  45.   gallery.setAdapter(new ImageAdapter(this));  
  46.     
  47.   registerForContextMenu(gallery);  
  48.     
  49.    Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);  
  50.          startManagingCursor(c);  
  51.            
  52.          SpinnerAdapter adapter = new SimpleCursorAdapter(this,  
  53.          // Use a template that displays a text view  
  54.                  android.R.layout.simple_gallery_item,  
  55.                  // Give the cursor to the list adatper  
  56.                  c,  
  57.                  // Map the NAME column in the people database to...  
  58.                  new String[] {People.NAME},  
  59.                  // The "text1" view defined in the XML template  
  60.                  new int[] { android.R.id.text1 });  
  61.  
  62.          gallery1= (Gallery) findViewById(R.id.gallery1);  
  63.          gallery1.setAdapter(adapter);  
  64.  }  
  65.  
  66.  @Override 
  67.  public void onCreateContextMenu(ContextMenu menu, View v,  
  68.    ContextMenuInfo menuInfo) {  
  69.   menu.add("Action");  
  70.  }  
  71.  
  72.  @Override 
  73.  public boolean onContextItemSelected(MenuItem item) {  
  74.   AdapterContextMenuInfo info = (AdapterContextMenuInfo) item  
  75.     .getMenuInfo();  
  76.   Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT)  
  77.     .show();  
  78.   return true;  
  79.  }  
  80.    
  81.  public class ImageAdapter extends BaseAdapter {  
  82.   int mGalleryItemBackground;  
  83.   private Context mContext;  
  84.  
  85.   private Integer[] mImageIds = { R.drawable.b, R.drawable.c,  
  86.     R.drawable.d, R.drawable.f, R.drawable.g };  
  87.  
  88.   public ImageAdapter(Context context) {  
  89.    mContext = context;  
  90.  
  91.    TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);  
  92.    mGalleryItemBackground = a.getResourceId(  
  93.      R.styleable.Gallery1_android_galleryItemBackground, 0);  
  94.    a.recycle();  
  95.   }  
  96.  
  97.   @Override 
  98.   public int getCount() {  
  99.    return mImageIds.length;  
  100.   }  
  101.  
  102.   @Override 
  103.   public Object getItem(int position) {  
  104.    return position;  
  105.   }  
  106.  
  107.   @Override 
  108.   public long getItemId(int position) {  
  109.    return position;  
  110.   }  
  111.  
  112.   @Override 
  113.   public View getView(int position, View convertView, ViewGroup parent) {  
  114.    ImageView i = new ImageView(mContext);  
  115.  
  116.    i.setImageResource(mImageIds[position]);  
  117.    i.setScaleType(ImageView.ScaleType.FIT_XY);  
  118.    i.setLayoutParams(new Gallery.LayoutParams(300, 400));  
  119.  
  120.    // The preferred Gallery item background  
  121.    i.setBackgroundResource(mGalleryItemBackground);  
  122.  
  123.    return i;  
  124.   }  
  125.  
  126.  }  
  127.  
  128.  
  129. }  
  130.  

轉自:http://www.cnblogs.com/salam/archive/2010/10/06/1844564.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved