
本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果。
效果如图所示:
具体实现方法:
res/layout/main.xml:
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="horizontal" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:ID="@+ID/layout1" > <GrIDVIEw androID:ID="@+ID/grIDVIEw1" androID:layout_height="match_parent" androID:layout_wIDth="440px" androID:layout_margintop="10px" androID:horizontalSpacing="3px" androID:verticalSpacing="3px" androID:numColumns="3"/> <!-- 添加一个图像切换器 --> <ImageSwitcher androID:ID="@+ID/imageSwitcher1" androID:padding="10px" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"/> </linearLayout>
MainActivity:
package com.example.test; import androID.app.Activity; import androID.os.Bundle; import androID.vIEw.VIEw; import androID.vIEw.VIEwGroup; import androID.vIEw.VIEwGroup.LayoutParams; import androID.vIEw.animation.AnimationUtils; import androID.Widget.AdapterVIEw; import androID.Widget.AdapterVIEw.OnItemClickListener; import androID.Widget.BaseAdapter; import androID.Widget.GrIDVIEw; import androID.Widget.ImageSwitcher; import androID.Widget.ImageVIEw; import androID.Widget.VIEwSwitcher.VIEwFactory; public class MainActivity extends Activity { private int[] imageID=new int []{R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.img9}; private ImageSwitcher imageSwitcher; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); imageSwitcher=(ImageSwitcher)findVIEwByID(R.ID.imageSwitcher1);//获取图像切换器 //设置动画效果 imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,androID.R.anim.fade_in));//设置淡入动画 imageSwitcher.setoutAnimation(AnimationUtils.loadAnimation(this,androID.R.anim.fade_out));//设置淡出动画 imageSwitcher.setFactory(new VIEwFactory() { @OverrIDe public VIEw makeVIEw() { //实例化一个ImageVIEw对象 ImageVIEw imageVIEw=new ImageVIEw(MainActivity.this); //设置保持纵横比居中缩放图像 imageVIEw.setScaleType(ImageVIEw.ScaleType.FIT_CENTER); imageVIEw.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); return imageVIEw;//返回imageVIEw对象 } }); imageSwitcher.setimageResource(R.drawable.img3);//设置默认显示的图像 GrIDVIEw grIDvIEw=(GrIDVIEw)findVIEwByID(R.ID.grIDVIEw1); BaseAdapter adapter=new BaseAdapter(){ @OverrIDe public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { ImageVIEw imageVIEw = null;//声明一个ImageVIEw对象 if(convertVIEw==null){ imageVIEw=new ImageVIEw(MainActivity.this);//实例化ImageVIEw对象 /****************设置图像的宽度和高度*******************/ imageVIEw.setAdjustVIEwBounds(true); imageVIEw.setMaxWIDth(150); imageVIEw.setMaxHeight(113); /*********************************************************/ imageVIEw.setpadding(5,5,5); }else{ imageVIEw=(ImageVIEw)convertVIEw; } imageVIEw.setimageResource(imageID[position]); return imageVIEw; } //功能:获得当前选项的ID @OverrIDe public long getItemID(int position) { return position; } //功能:获得当前选项 @OverrIDe public Object getItem(int position) { return position; } //获得数量 @OverrIDe public int getCount() { return imageID.length; } }; grIDvIEw.setAdapter(adapter); grIDvIEw.setonItemClickListener(new OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> parent,VIEw vIEw,int position,long ID) { //显示选中的照片 imageSwitcher.setimageResource(imageID[position]); } }); } } 运行效果与开头描述相同,成功实现。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android实现仿Windows7图片预览窗格效果全部内容,希望文章能够帮你解决Android实现仿Windows7图片预览窗格效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)