Android gallery与BaseaDapter的使用
16lz
2021-01-23
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/img" android:layout_width="300dp" android:layout_height="300dp" android:layout_gravity="center" /> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:spacing="3dp" android:layout_gravity="bottom" /></LinearLayout>
package com.example.test;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;public class MainActivity extends Activity { private Gallery mGallery; private ImageView mImg; //图片数组 private int[] pics = { R.drawable.girl1, R.drawable.girl2, R.drawable.girl4, R.drawable.gril3, R.drawable.demo, R.drawable.demo1 }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mImg = (ImageView)findViewById(R.id.img); mGallery = (Gallery)findViewById(R.id.gallery); MyAdapter adapter = new MyAdapter(this); mGallery.setAdapter(adapter); mGallery.setOnItemClickListener(new Gallery.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int position, long arg3) { mImg.setImageResource(pics[position]); } }); } //内部类 class MyAdapter extends BaseAdapter { //用来接收传递过来的Context上下文对象 private Context context; //构造函数 public MyAdapter(Context context) { this.context = context; } @Override public int getCount() { //返回图片数组大小 return pics.length; } @Override public Object getItem(int position) { //根据选中项返回索引位置 return position; } @Override public long getItemId(int position) { //根据选中项id返回索引位置 return position; } //未优化的getView,这部分可以使用recycle()释放内存、或者BitmapFacotry.Options缩小,或者软引用,或者控制图片资源大小等等很多方法,找时间专门写 @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView img = new ImageView(context); img.setAdjustViewBounds(true); img.setImageResource(pics[position]); img.setScaleType(ImageView.ScaleType.FIT_XY);// img.setLayoutParams(new Gallery.LayoutParams(120,120)); return img; } }}
更多相关文章
- Android保存图片到图库,Android扫描文件到媒体库,Android保存图片
- Android 框架学习4:一次读懂热门图片框架 Picasso 源码及流程
- 关于android中网络图片下载中oom解决开源框架Afinal的探究
- Blog-07-《一周快速上手Kotlin For Android》-之数组
- Android App 性能优化之图片优化
- 常用组件:android的图片组件ImageView
- Android移动图片