Android幻灯片式图片浏览器
来源:互联网 发布:机顶盒u盘装软件 编辑:程序博客网 时间:2024/05/01 10:28
今天我们通过使用Android提供给我们的现有空间Gallery和ImageSwitcher来实现一个幻灯片式的图片浏览器。
(1)首先我们新建一个工程,修改主布局文件activity_main.xml内容如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:orientation="vertical" > <ImageSwitcher android:id="@+id/image_switcher" android:layout_width="wrap_content" android:layout_height="0dip" android:layout_weight="2" android:paddingTop="30dip" /> <!-- android:layout_weight 详细解释:按比例显示LinearLayout内各个子控件, 需设置android:layout_width="0dp", 如果为竖直方向的设置android:layout_height="0dp"。 在这种情况下某子个控件占用LinearLayout的比例为: 本控件weight值 / LinearLayout内所有控件的weight值的和。 android:spacing 设置图片的间距 android:unselectedAlpha 设置为选中条目的透明度 --> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:spacing="5dip" android:unselectedAlpha="0.6" /></LinearLayout>
public class MainActivity extends Activity {// 声明并静态初始化图片id数组private int[] imageIds = { R.drawable.img01, R.drawable.img02,R.drawable.img03, R.drawable.img04, R.drawable.img05,R.drawable.img06, R.drawable.img07, R.drawable.img08,R.drawable.img09, R.drawable.img10, R.drawable.img11,R.drawable.img12 };// 声明一个Gallery视图控件变量private Gallery gallery;// 声明一个ImageSwitcher视图控件变量private ImageSwitcher imageSwitcher;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获取视图控件对象gallery = (Gallery) findViewById(R.id.gallery);imageSwitcher = (ImageSwitcher) findViewById(R.id.image_switcher);// 设置动画效果imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));// 为imageSwitcher设置ViewFactory对象imageSwitcher.setFactory(new ViewFactory() {@Overridepublic View makeView() {// 初始化一个ImageView对象ImageView imageView = new ImageView(MainActivity.this);// 设置保持纵横比居中缩放图像imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);// 设置imageView的宽高imageView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));return imageView;}});//初始化一个MainGalleryAdapter对象MainGalleryAdapter adapter = new MainGalleryAdapter();//将适配器与gallery关联起来gallery.setAdapter(adapter);//初始选中中间的图片gallery.setSelection(imageIds.length/2);gallery.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {//在ImageSwitcher中显示选中的图片imageSwitcher.setImageResource(imageIds[position]);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}/** * 定义Gallery的数据适配器MainGalleryAdapter */class MainGalleryAdapter extends BaseAdapter {/** * 获得数量 */@Overridepublic int getCount() {return imageIds.length;}/** * 获得当前选项 */@Overridepublic Object getItem(int position) {return getResources().getDrawable(imageIds[position]);}/** * 获得当前选项的id */@Overridepublic long getItemId(int position) {return position;}/** * 获得当前选项的视图 */@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//初始化一个ImageView对象ImageView imageView = new ImageView(MainActivity.this);//设置缩放方式imageView.setScaleType(ImageView.ScaleType.FIT_XY);//设置ImageView的宽高imageView.setLayoutParams(new Gallery.LayoutParams(180, 135));//设置IamgeView显示的图片imageView.setImageResource(imageIds[position]);/** * 设置ImageView背景,这里背景使用的是android提供的一种背景风格 * 在values/attr.xml文件中需要一下内容 * <declare-styleable name="Gallery"> *<attr name="android:galleryItemBackground" /> *</declare-styleable> */TypedArray typedArray = MainActivity.this.obtainStyledAttributes(R.styleable.Gallery);int mGalleryItemBackground = typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);imageView.setBackgroundResource(mGalleryItemBackground);//返回ImageView对象return imageView;}}}
(3)我们看一下程序运行后的效果图:
(4)附上完整的android源码:
Android幻灯片式的图片浏览器
2 0
- Android幻灯片式图片浏览器
- Android幻灯片式图片浏览器
- 幻灯片式图片浏览器
- 幻灯片式图片浏览器
- 【Android开发】范例2-实现幻灯片式图片浏览器
- 实例4:幻灯片式图片浏览器
- Gallery实现幻灯片式的图片浏览器
- 幻灯片模式图片浏览器
- 菜鸟Android学习之路25——幻灯片式图片浏览器
- JS 控制图片在浏览器上幻灯片式自动播放
- 我的Android进阶之旅------>Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器
- android幻灯片
- android图片左右滚动类似翻页切换幻灯片效果
- 幻灯片似的自动显示文件下的图片 android
- android 仿系统图片播放器中的幻灯片播放
- Android图片浏览器
- android 图片浏览器 demo
- android高仿微信图片浏览器
- 红黑树介绍
- 【数据库摘要】5_Sql_IN
- 网络下载文件小程序(非原创,他人所写)
- Asp.net数据抓取
- 《Head First Programming》---python 1_开始编码
- Android幻灯片式图片浏览器
- unity assetBundle使用image材质
- Linux下which、whereis、locate、find 命令的区别
- A New Year Gift
- VMWare 下完美安装 Mac OS X
- 如何创建jar包
- 给大家推荐一个不错的51编程论坛,http://51pro.net
- struts2与spring集成时,关于class属性及成员bean自动注入的问题
- MySQL 性能优化的最佳20多条经验分享