Android——Gallery 图片拖动效果

时间:2021-11-29 13:58:49

1、XML文件

<?xml version="1.0" encoding="utf-8"?>
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gallery01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

</Gallery>

2、ImageAdapter

public class ImageAdapter extends BaseAdapter {
    // 定义context
    private Context context;
    // 定义整型数组,即图片源
    private Integer[] imageIds = { R.drawable.button1, R.drawable.button2,
            R.drawable.button3, R.drawable.button31 };

// 声明ImageAdapter
    public ImageAdapter(Context c) {
        context = c;
    }

// 获取图片数量
    @Override
    public int getCount() {
        return imageIds.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 imageView = new ImageView(context);
        // 给ImageView设置资源
        imageView.setImageResource(imageIds[position]);
        // 设置布局图片以120*120显示
        imageView.setLayoutParams(new Gallery.LayoutParams(120, 120));
        // 设置显示比例类型
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        return imageView;
    }

}

3、GalleryActivity

public class GalleryActivity extends Activity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gallery);
        // 获得Gallery对象
        Gallery g = (Gallery) findViewById(R.id.gallery01);
        g.setAdapter(new ImageAdapter(this));
        // 设置gallery背景
        // g.setBackgroundResource(R.drawable.button31);
        // 设置gallery背景颜色
        g.setBackgroundColor(Color.GRAY);
        g.setOnItemClickListener(new OnItemClickListener() {

@Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                Toast.makeText(GalleryActivity.this,
                        "您选择了" + (position + 1) + "号图片", Toast.LENGTH_SHORT)
                        .show();
            }
        });
    }

}