Android 之 Gallery 1    在 xml 布局中添加 Gallery 2    自定义 ImageAdapter 3    每个 ImageView 的背景参数 4    在 MainActivity 中绑定数据与设置监听 5    图片资源 6    结果展示

activity_main.xml
<LinearLayout xmlns:andro
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Gallery
        android:
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>


2    自定义 ImageAdapter

ImageAdapter.java
package com.example.gallery;
import java.util.List;
import android.content.Context;
import android.content.res.TypedArray;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
@SuppressWarnings("deprecation")
public class ImageAdapter extends BaseAdapter {
    
    private Context context;
    private List<Integer> list;
    private TypedArray typedArray;
    private int item_background;
    
    public ImageAdapter(Context context ,List<Integer> list)
    {
        this.context=context;
        this.list=list;
        this.typedArray = context.obtainStyledAttributes(R.styleable.gallery_style);
        item_background=typedArray.getResourceId(R.styleable.gallery_style_android_galleryItemBackground, 0);
        typedArray.recycle();
    }
    @Override
    public int getCount() {
        return list.size();
    }
    @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 imageView = new ImageView(context);
        //设置显示的图片
        imageView.setImageResource(list.get(position));
        
        //设置伸缩规格
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        
        //设置布局参数
        imageView.setLayoutParams(new Gallery.LayoutParams(150,100));
        
        //设置背景边框
        imageView.setBackgroundResource(item_background);
        
        return imageView;
    }
}



3    每个 ImageView 的背景参数

res/values/attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="gallery_style">
        <attr name="android:galleryItemBackground" />
    </declare-styleable>
</resources>


4    在 MainActivity 中绑定数据与设置监听

MainActivity.java
package com.example.gallery;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.Toast;
@SuppressWarnings("deprecation")
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Gallery gallery=(Gallery)findViewById(R.id.gallery);
        
        ArrayList<Integer>list=new ArrayList<Integer>();
        list.add(R.drawable.img1);
        list.add(R.drawable.img2);
        list.add(R.drawable.img3);
        list.add(R.drawable.img4);
        list.add(R.drawable.img5);
        list.add(R.drawable.img6);
        list.add(R.drawable.img7);
        
        ImageAdapter adapter=new ImageAdapter(this,list);
        gallery.setAdapter(adapter);
        
        gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
            @Override  
            public void onItemSelected(AdapterView<?> parent, View v,int position, long id) {  
                Toast.makeText(getApplicationContext(), "选择了:  "+ 
                               String.valueOf(position), Toast.LENGTH_SHORT).show();
            }  
            
            @Override  
            public void onNothingSelected(AdapterView<?> arg0) {  
            //这里不做响应  
            }  
        }); 
    }
}


5    图片资源

注:图片最好为 png 格式的图片,由于jpg是压缩后的图片,在android 中解压缩有可能导致内存溢出错误。
  Android 之 Gallery
1    在 xml 布局中添加 Gallery
2    自定义 ImageAdapter
3    每个 ImageView 的背景参数
4    在 MainActivity 中绑定数据与设置监听
5    图片资源
6    结果展示Android 之 Gallery
1    在 xml 布局中添加 Gallery
2    自定义 ImageAdapter
3    每个 ImageView 的背景参数
4    在 MainActivity 中绑定数据与设置监听
5    图片资源
6    结果展示

6    结果展示

  Android 之 Gallery
1    在 xml 布局中添加 Gallery
2    自定义 ImageAdapter
3    每个 ImageView 的背景参数
4    在 MainActivity 中绑定数据与设置监听
5    图片资源
6    结果展示Android 之 Gallery
1    在 xml 布局中添加 Gallery
2    自定义 ImageAdapter
3    每个 ImageView 的背景参数
4    在 MainActivity 中绑定数据与设置监听
5    图片资源
6    结果展示



注:转载请注明出处 :)   毕竟代码是一个一个敲出来的啊,O(∩_∩)O~