Android使用Gallery实现照片拖动的特效
程序员文章站
2024-01-08 21:31:34
今天要分享一个非常简单的功能:使用android原生控件gallery实现照片拖动的特效实现思路如下: 在布局文件中定义一个gallery控件 由于要显示多张图,为了方便,我直接引用了androi...
今天要分享一个非常简单的功能:
使用android原生控件gallery实现照片拖动的特效
实现思路如下:
- 在布局文件中定义一个gallery控件
- 由于要显示多张图,为了方便,我直接引用了android原生的图片资源
- gallery只是一个控件,为了将图片数据跟控件进行绑定,还需要一个继承baseadapter的自定义适配器
源码如下:
1、主activity和自定义内部类imageadapter:
import android.app.activity; import android.content.context; import android.os.bundle; import android.util.log; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.gallery; import android.widget.imageview; import com.example.memorydemo.r; public class simplegallery extends activity { private static final string tag = "simplegallery"; @override protected void oncreate(bundle onsavedinstance) { super.oncreate(onsavedinstance); setcontentview(r.layout.simple_gallery_layout); gallery gallery = findviewbyid(r.id.gallery); gallery.setadapter(new imageadapter(this)); } private class imageadapter extends baseadapter { // 这里我们使用android原生的资源图标 private int[] imageids = { android.r.drawable.btn_minus, android.r.drawable.btn_radio, android.r.drawable.ic_lock_idle_low_battery, android.r.drawable.ic_menu_camera }; private context mcontext; public imageadapter(context context) { mcontext = context; } @override public int getcount() { return imageids.length; } @override public object getitem(int position) { return imageids[position]; } @override public long getitemid(int position) { return position; } @override public view getview(int position, view convertview, viewgroup parent) { imageview imageview; if (convertview == null) { log.i(tag, "convertview is null, create new imageview"); imageview = new imageview(mcontext); } else { log.i(tag, "cast convertview to imageview"); imageview = (imageview) convertview; } imageview.setimageresource(imageids[position]); imageview.setscaletype(imageview.scaletype.fit_xy); // 注意这里要用gallery.layoutparams作为布局参数类型,源码中给出了建议(views given to the gallery should use // gallery.layoutparams s their ayout parameters type) // 由于android原生图片很小,我将高度设置为 500,方便看效果 imageview.setlayoutparams(new gallery.layoutparams(viewgroup.layoutparams.match_parent, 500)); return imageview; } } }
2、布局文件 simple_gallery_layout.xml如下:
<?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"> <gallery android:id="@+id/gallery" android:layout_width="match_parent" android:layout_height="match_parent" /> </linearlayout>
注意:
gallery控件其实已经被废弃了,建议用 horizontalscrollview 和 viewpager 代替,源码中是这么解释的:
@deprecated this widget is no longer supported. other horizontally scrolling widgets include {@link horizontalscrollview} and {@link android.support.v4.view.viewpager} from the support library.
后续会分享 horizontalscrollview 和 viewpager这两个控件是如何使用的。
以上就是android使用gallery实现照片拖动的特效的详细内容,更多关于android 照片拖动特效的资料请关注其它相关文章!