android基础入门Gallery与ImageView视图(10)
来源:互联网 发布:mac预览图片快捷键 编辑:程序博客网 时间:2024/04/26 15:12
一.Gallery和ImageView视图:
Gallery是一种用固定在中间位置的水平滚动列表显示列表项的视图。
我们用到了ImageView.ScaleType属性,各类值得区别:
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请浏览图片" /> <Gallery android:id="@+id/gallery1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/image" android:layout_width="320dp" android:layout_height="250dp" android:scaleType="fitXY" /></LinearLayout>
自定义属性(attrs.xml):
<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="Gallery1"> <attr name="android:galleryItemBackground"/> </declare-styleable> </resources>
主要代码:
public class MainActivity extends Activity {private ImageAdapter ad;private Gallery gallery;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ad = new ImageAdapter(this);gallery = (Gallery)findViewById(R.id.gallery1);//绑定适配器gallery.setAdapter(ad);//设置监听器。gallery.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubtoastPrint("img"+(arg2+1));ImageView i = (ImageView)findViewById(R.id.image);i.setImageResource(ad.imgId[arg2]);}});} public void toastPrint(String str){Toast.makeText(this, str, Toast.LENGTH_SHORT).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
自定义适配器(Adapter):
public class ImageAdapter extends BaseAdapter {//显示的图片 Integer[] imgId = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img8,R.drawable.img9,};Context context;int item;public ImageAdapter(Context c){context = c;//使用在res/value/attrs.xml中的Gallery1属性TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery1);// 取得Gallery1属性item = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);//让对象的styleable属性能够反复使用a.recycle();}//返回要显示的图片的总数@Overridepublic int getCount() {// TODO Auto-generated method stubreturn imgId.length;} //获取图片在库中的位置 @Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;} //获取图片在库中的位置@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubImageView image;if(convertView == null){image = new ImageView(context); //给ImageView设置资源image.setImageResource(imgId[position]);//设置图片不按比例大小缩放。image.setScaleType(ImageView.ScaleType.FIT_XY);//设置图片大小。image.setLayoutParams(new Gallery.LayoutParams(200, 150));}else{image = (ImageView)convertView;}//添加背景框架image.setBackgroundResource(3);return image;}}
运行图片:
2 1
- android基础入门Gallery与ImageView视图(10)
- Android -- (10),Gallery ImageView
- Android入门---ImageView(图像视图)
- android Gallery与ImageView的结合使用
- android Gallery与imageView 滑动冲突问题解决方法
- 【Android基础入门〖13〗】Gallery
- 【Android基础入门〖13〗】Gallery
- Android基础篇之ImageSwitcher与Gallery
- Android 图像视图ImageView
- Android基础入门教程——2.3.4 ImageView(图像视图)
- android学习---Gallery画廊视图
- Android入门/Gallery(十三)
- 【Android 开发教程】Gallery和ImageView
- android之ImageView+Gallery组件的应用
- android基础入门ListView视图(8)
- android基础入门ImageSwitcher视图(11)
- android基础入门GridView视图(12)
- android 控件 图片视图(ImageView)
- [VC] ADO访问本地数据库应用
- 二维码的生成细节和原理
- 浏览器缓存
- Python3.x区别
- tabHost的两种实现方式
- android基础入门Gallery与ImageView视图(10)
- DACE- a matlab Kriging toolbox
- Listview异步加载图片之优化篇(有图有码有解释)
- 【安卓逆向】初体验
- 同源策略和跨域访问
- 杰瑞学Perl之文件操作(1)
- android ndk 编译方式,静态库、动态库、可执行文件
- 面向对象分析与设计课程学习之不同的分析与设计方法
- c++栈和堆的区别