Android开发实现Gallery画廊效果的方法
程序员文章站
2023-11-07 15:31:10
本文实例讲述了android开发实现gallery画廊效果的方法。分享给大家供大家参考,具体如下:
画廊 使用gallery表示,按水平方向显示内容,并且可以用手指直接拖...
本文实例讲述了android开发实现gallery画廊效果的方法。分享给大家供大家参考,具体如下:
画廊 使用gallery表示,按水平方向显示内容,并且可以用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,可以响应事件显示信息。
xml布局文件基本语法
<gallery 属性列表 />
gallery支持4中xml属性
属性名称
|
描述
|
|||||||||||||||||||||||||||||||||||||||
android:animationduration
|
设置布局变化时动画的转换所需的时间(毫秒级)。仅在动画开始时计时。该值必须是整数,比如:100。
|
|||||||||||||||||||||||||||||||||||||||
android:gravity
|
指定在对象的x和y轴上如何放置内容。指定一下常量中的一个或多个(使用 “|”分割)
|
|||||||||||||||||||||||||||||||||||||||
android:spacing
|
(译者注:设置图片之间的间距)
|
|||||||||||||||||||||||||||||||||||||||
android:unselectedalpha
|
设置未选中的条目的透明度(alpha)。该值必须是float类型,比如:“1.2”
|
效果的具体实现过程
layout:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <gallery android:id="@+id/gallery" android:spacing="5px" //设置列表项之间的间距为5像素 android:unselectedalpha="0.5" //设置未被选中的列表项的透明度 android:layout_width="match_parent" android:layout_height="wrap_content" /> </linearlayout>
activity:
package xqx; import com.example.xqx_lianxi.r; import android.app.activity; import android.content.res.typedarray; import android.os.bundle; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.baseadapter; import android.widget.gallery; import android.widget.imageview; import android.widget.toast; public class maingallery extends activity{ //设置画廊图片 private int[] imageid = new int[] { r.drawable.ic_launcher,r.drawable.ic_launcher,r.drawable.ic_launcher,r.drawable.ic_launcher,r.drawable.ic_launcher,r.drawable.ic_launcher}; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.main_gallery); //获取gallery组件 gallery gallery = (gallery) findviewbyid(r.id.gallery); baseadapter adapter = new baseadapter() { //获取当前选项id @override public long getitemid(int position) { return position; } //获取当前选项值 @override public object getitem(int position) { return position; } //获取数量 @override public int getcount() { return imageid.length; } @override public view getview(int position, view convertview, viewgroup parent) { imageview imageview; //声明imageview的对象 if (convertview == null) { imageview = new imageview(maingallery.this); //创建imageview的对象 imageview.setscaletype(imageview.scaletype.fit_xy); //设置缩放方式 imageview.setlayoutparams(new gallery.layoutparams(500, 400)); typedarray typedarray = obtainstyledattributes(r.styleable.gallery); imageview.setbackgroundresource(typedarray.getresourceid( r.styleable.gallery_android_galleryitembackground, 0)); imageview.setpadding(5, 0, 5, 0); //设置imageview的内边距 } else { imageview = (imageview) convertview; } imageview.setimageresource(imageid[position]); return imageview; } }; //将适配器与gallery关联 gallery.setadapter(adapter); gallery.setselection(imageid.length / 2); //默认显示的图片的id //画廊图片的点击事件 gallery.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { toast.maketext(maingallery.this, "第" + string.valueof(position+1) + "张图片被选中", toast.length_short).show(); } }); } }
最后在res/values/string.xml中添加一段代码 ,这里对应activity中的51行
<declare-styleable name="gallery"> <attr name="android:galleryitembackground" /> </declare-styleable>
这样便完成了一个画廊的效果
效果图:
可以看到 一共有6张图片 默认显示第4张
gallery.setselection(imageid.length / 2); //默认显示的图片的id
更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
上一篇: php中文语义分析实现方法示例
下一篇: 【Django入门】学习笔记01