Android 控件之Gallery图片集

openkk 13年前

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

Android 控件之Gallery图片集

Android 控件之Gallery图片集

Android 控件之Gallery图片集

 

 widgetdemo.rar

 一、简介

  在中心锁定,水平显示列表的项。

二、实例

1.布局文件

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"     android:orientation="vertical"    android:layout_height="wrap_content">       <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery"   android:layout_width="match_parent"   android:layout_height="wrap_content"  />    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:orientation="vertical"      android:layout_width="match_parent"      android:layout_height="wrap_content">        <Gallery android:id="@+id/gallery1"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:gravity="center_vertical"          android:spacing="16dp"      />    </LinearLayout>      </LinearLayout>

 

 2.属性文件

<?xml version="1.0" encoding="utf-8"?>    <resources>        <declare-styleable name="TogglePrefAttrs">          <attr name="android:preferenceLayoutChild" />      </declare-styleable>           <!-- These are the attributes that we want to retrieve from the theme           in view/Gallery1.java -->      <declare-styleable name="Gallery1">          <attr name="android:galleryItemBackground" />      </declare-styleable>            <declare-styleable name="LabelView">          <attr name="text" format="string" />          <attr name="textColor" format="color" />          <attr name="textSize" format="dimension" />      </declare-styleable>  </resources>

 

3.代码

/**   *   */  package wjq.WidgetDemo;    import android.R.layout;  import android.app.Activity;  import android.content.Context;  import android.content.res.TypedArray;  import android.database.Cursor;  import android.os.Bundle;  import android.provider.Contacts.People;  import android.view.ContextMenu;  import android.view.MenuItem;  import android.view.View;  import android.view.ViewGroup;  import android.view.ContextMenu.ContextMenuInfo;  import android.widget.BaseAdapter;  import android.widget.Gallery;  import android.widget.ImageView;  import android.widget.SimpleCursorAdapter;  import android.widget.SpinnerAdapter;  import android.widget.Toast;  import android.widget.AdapterView.AdapterContextMenuInfo;    /**   * @author 记忆的永恒   *   */  public class GalleryDemo extends Activity {   private Gallery gallery;   private Gallery gallery1;     /*    * (non-Javadoc)    *    * @see android.app.Activity#onCreate(android.os.Bundle)    */   @Override   protected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onCreate(savedInstanceState);    setContentView(R.layout.gallerypage);    gallery = (Gallery) findViewById(R.id.gallery);    gallery.setAdapter(new ImageAdapter(this));        registerForContextMenu(gallery);         Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);           startManagingCursor(c);                     SpinnerAdapter adapter = new SimpleCursorAdapter(this,           // Use a template that displays a text view                   android.R.layout.simple_gallery_item,                   // Give the cursor to the list adatper                   c,                   // Map the NAME column in the people database to...                   new String[] {People.NAME},                   // The "text1" view defined in the XML template                   new int[] { android.R.id.text1 });             gallery1= (Gallery) findViewById(R.id.gallery1);           gallery1.setAdapter(adapter);   }     @Override   public void onCreateContextMenu(ContextMenu menu, View v,     ContextMenuInfo menuInfo) {    menu.add("Action");   }     @Override   public boolean onContextItemSelected(MenuItem item) {    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item      .getMenuInfo();    Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT)      .show();    return true;   }      public class ImageAdapter extends BaseAdapter {    int mGalleryItemBackground;    private Context mContext;      private Integer[] mImageIds = { R.drawable.b, R.drawable.c,      R.drawable.d, R.drawable.f, R.drawable.g };      public ImageAdapter(Context context) {     mContext = context;       TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);     mGalleryItemBackground = a.getResourceId(       R.styleable.Gallery1_android_galleryItemBackground, 0);     a.recycle();    }      @Override    public int getCount() {     return mImageIds.length;    }      @Override    public Object getItem(int position) {     return position;    }      @Override    public long getItemId(int position) {     return position;    }      @Override    public View getView(int position, View convertView, ViewGroup parent) {     ImageView i = new ImageView(mContext);       i.setImageResource(mImageIds[position]);     i.setScaleType(ImageView.ScaleType.FIT_XY);     i.setLayoutParams(new Gallery.LayoutParams(300, 400));       // The preferred Gallery item background     i.setBackgroundResource(mGalleryItemBackground);       return i;    }     }      }