1 在 xml 布局中添加 Gallery

activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <Gallery        android:id="@+id/gallery"        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 中解压缩有可能导致内存溢出错误。

6 结果展示




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



更多相关文章

  1. 让ImageView全部适应ScrollView
  2. Android设置支持多种分辨率
  3. Android(安卓)WebView相关属性
  4. 改变ToggleButton的图片
  5. android设置属性
  6. android 自定义主题样式
  7. Android(安卓)Desigin Library
  8. 基于Android(安卓)P 背光流程
  9. android:windowSoftInputMode属性使用

随机推荐

  1. spring mvc + mybatis 构建 cms 内容发布
  2. Android为ListView的Item设置不同的布局
  3. Android快速开发工具:AndroidAnnotations:
  4. Android实现水波纹扩散效果的实例代码
  5. 编译cubieboard android 源码过程详解之(
  6. Flutter-基础组件2
  7. android支持多分辨率屏幕
  8. Android(安卓)动画之集合动画AnimatorSet
  9. Retrofit的详解及使用
  10. 错误集录