利用GridView来做一个简单的图片查看器

        首先简单说明一下实现这个简单的图片查看器,我们需要做些那些工作,实现图片查看器我们应该第一先到要用到的是适配器(Adapter)一下是adpter的构造函数,

SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 从构造函数我们可以看出他告诉我们要实现他我们需要给他传一个context上下文的参数 ,list数据源数组,resource数据源文件用来显示List中一条数据的布局文件,String[] HashMapKey的值,int[]to 元素中布局文件中的试图id (应为)这里图片肯定不只一张需要用数组来保存;

显示GridVeiwdlayout

    <GridView

        android:id="@+id/gridView"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:horizontalSpacing="10dp"

        android:numColumns="4"

        android:padding="10dp"

        android:verticalSpacing="100dp"

/>

//这个GridVeiw控件的是四列组成 内边距是10dp水平间隔也是100dp

显示图片和备注的layout

    <ImageView

        android:id="@+id/img"

        android:layout_width="50dp"

        android:layout_height="50dp"

       />

 

    <TextView

        android:id="@+id/text"

        android:layout_width="50dp"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

       />

//这个layout就是一个ImgeVeiwTextVeiw控件属性也比较简单这里我不多说了

这个在MainActivity需要实现的代码

       private GridView gridView;

       static int[] imgs = { R.drawable.a1, R.drawable.a2, ………};

       //这个数组的作用是存放的图片,这个我了叙述简单就直接将突破存放在res.drawable-hdpi下面,当然在实际的项目中图片的存放有可能是一个url路径,或者是CD卡。

@Override

       protected void onCreate(Bundle savedInstanceState) {

              super.onCreate(savedInstanceState);

              this.setContentView(R.layout.activity_third);

 

              // 获得网格视图

              gridView = (GridView) this.findViewById(R.id.gridView);

 

              // 数据源

              ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();

 

              for (int i = 0; i < imgs.length; i++) {

HashMap<String, Object> map = new HashMap<String,Object>();

                     map.put("k1", imgs[i]);

                     map.put("k2", "程序" + i);

                     data.add(map);

              }

 

              String[] from = { "k1", "k2" };

              int[] to = { R.id.img, R.id.text };

              // 参数1:上下文

              // 参数2:数据

              // 参数3:用来显示List中一条数据的布局文件

              // 参数4HashMapK的数组  

              // 参数5:元素的布局文件中的视图id

              SimpleAdapter adapter = new SimpleAdapter(this, data,

                            R.layout.grid_item, from, to);

              gridView.setAdapter(adapter);

       //设置这个适配器

 

       }

 

       效果图:

       

 

这就是一个简单的图片查看器 很简单 大家去试一试吧。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个使用GridView实现横向图片滚动的例子: 1. 布局文件中添加GridView,并设置为横向滚动 ``` <GridView android:id="@+id/grid_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="auto_fit" android:columnWidth="100dp" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:scrollbars="horizontal" /> ``` 2. 创建一个ImageAdapter类来加载图片 ``` public class ImageAdapter extends BaseAdapter { private Context mContext; private List<Integer> mImageIds; public ImageAdapter(Context context, List<Integer> imageIds) { mContext = context; mImageIds = imageIds; } @Override public int getCount() { return mImageIds.size(); } @Override public Integer getItem(int position) { return mImageIds.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(100, 100)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mImageIds.get(position)); return imageView; } } ``` 3. 在Activity中设置GridView的Adapter并加载图片 ``` public class MainActivity extends AppCompatActivity { private GridView mGridView; private List<Integer> mImageIds = Arrays.asList( R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8, R.drawable.image9, R.drawable.image10); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGridView = findViewById(R.id.grid_view); mGridView.setAdapter(new ImageAdapter(this, mImageIds)); } } ``` 这样就可以实现一个简单的横向图片滚动的效果了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值