android 的 Gallery 的简单使用
2013-12-01 22:17
288 查看
Gallery 的用法很简单,百度一下一大堆。现在就结合1个效果的例子。
这个效果其实很简单,设置未被选中的项,的透明度 周围的看起来就会有点模糊
android:unselectedAlpha="0.5"
设置好每个item的间隔
android:spacing="15dip"
每个item 的样子 就需要自己设置。比如利用 渲染器等各种效果
实现思路就是 在 onItemSelected 中监听 选中状态 动态的去改变 每个item的样子
部分代码:
adapter
代码: http://download.csdn.net/detail/kongbaidepao/6640881
这个效果其实很简单,设置未被选中的项,的透明度 周围的看起来就会有点模糊
android:unselectedAlpha="0.5"
设置好每个item的间隔
android:spacing="15dip"
每个item 的样子 就需要自己设置。比如利用 渲染器等各种效果
实现思路就是 在 onItemSelected 中监听 选中状态 动态的去改变 每个item的样子
部分代码:
public class BitmapUtil { public static Bitmap createTxtImage(String txt, int txtSize) { /** * 未选中的 item 进行字体的设置 */ Bitmap btimap = Bitmap.createBitmap(txt.length() * txtSize + 6, txtSize + 6, Config.ARGB_8888); Canvas canvas = new Canvas(btimap); Paint p = new Paint(); p.setAntiAlias(true); p.setColor(Color.WHITE); p.setTextSize(txtSize); canvas.drawText(txt, 3, txtSize - 3, p); return btimap; } /** * 图片倒影的效果 */ public static Bitmap createReflectedImage(Bitmap bitmap) { //中间 final int reflectionGap = 0 ; int width = bitmap.getWidth(); int height = bitmap.getHeight(); //整个 bitmap Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height/2 + 20 ), Config.ARGB_8888); Matrix matrix = new Matrix(); matrix.preScale(1, -1); Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0 , height / 2, width , height / 2, matrix, false); Canvas canvas = new Canvas(bitmapWithReflection); //正面的 canvas.drawBitmap(bitmap,0 , 20, null); // draw 倒影 Paint defaultPaint = new Paint(); canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint); canvas.drawBitmap(reflectionImage, 0, height + reflectionGap + 20 , null); Paint paint = new Paint(); //线性渲染器 LinearGradient shader = new LinearGradient(0, bitmap.getHeight()+30, 0, bitmapWithReflection.getHeight() + reflectionGap,0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawRect(0, height + 20, width, bitmapWithReflection.getHeight() + reflectionGap, paint); return bitmapWithReflection; } }
adapter
public class GalleryAdapter extends BaseAdapter{ public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(context); if (select == position) { Entity en = entity_list.get(position % entity_list.size()); imageView.setImageBitmap(BitmapUtil.createReflectedImage(BitmapUtil .createTxtImage(en.getName(), 30))); } else { Entity en = entity_list.get(position % entity_list.size()); imageView.setImageBitmap(BitmapUtil.createTxtImage(en.getName(), 25)); } return imageView; } }
public class MyGalleryWight extends Gallery { public MyGalleryWight(Context context, AttributeSet attrs) { super(context, attrs); } // 这个是为了不让他一下滑动好多 你也可以不重写这个方法 public boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } }主要访法
@Override public void onItemSelected(AdapterView<?> arg0, View view, int position, long arg3) { // TODO Auto-generated method stub adapter.notifyDataSetChanged(position);//arg2会返回当前选中项的位置,调用此方法,通知更新 }
代码: http://download.csdn.net/detail/kongbaidepao/6640881
相关文章推荐
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android Gallery 的简单使用
- ANDROID笔记:Gallery的简单使用
- Android Gallery简单3d效果使用
- 一个简单的Android Intent使用实例,包括显式/隐式2种调用
- Android中使用XmlPullParser操作简单的xml文件
- 89 Android Gallery 简单的画廊效果
- Android使用最简单的方式实现ListView 拉出回弹效果,阻尼效果(一)
- android google map 的简单使用
- Android的string-array数据源简单使用
- android ToolBar的简单使用
- Android中Intent的简单使用
- Android 最早使用的简单的网络请求
- Android上ORMLite的配置和简单使用
- Android 列表使用(ListView GridView Gallery图片计时滚动)
- Android 中 Fragment 的简单使用
- Android Preference简单使用步骤
- Android WebView简单使用