今天要分享一个非常简单的功能:

使用Android原生控件Gallery实现照片拖动的特效

实现思路如下:

  1. 在布局文件中定义一个Gallery控件
  2. 由于要显示多张图,为了方便,我直接引用了Android原生的图片资源
  3. 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"?>  

注意:

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 照片拖动特效的资料请关注脚本之家其它相关文章!

更多相关文章

  1. android listview仿iphone弹簧特效
  2. android开发之widget控件突然停止更新的原因
  3. Android(安卓)应用程序中的界面控件与程序控制
  4. 在Eclipse中加入Android源码
  5. Android(安卓)preference与ActivityGroup UI更新
  6. [置顶] android popupwindow 弹出窗口在控件上方居中,比控件大一
  7. Android(安卓)studio APP开发第二章 Button和Textview功能
  8. android api code学习之ActivityManager
  9. Android自定义控件实现环形播放进度条

随机推荐

  1. android Table(1)
  2. android 设置主题
  3. Android(安卓)TextView滚动
  4. [置顶] Android应用程序资源管理器
  5. API 23 view.ViewGroup——属性分析
  6. 使用SlidingDrawer的隐藏/显示搜索框
  7. android studio 0.6.0 下载地址
  8. Android中Toast的自定义
  9. Android(安卓)SDK Manager 更新SDK问题
  10. 根据电话号码查找人名