Gallery 的用法很简单,百度一下一大堆。现在就结合1个效果的例子。



这个效果其实很简单,设置未被选中的项,的透明度 周围的看起来就会有点模糊

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;    }}
主要访法

@Overridepublic void onItemSelected(AdapterView<?> arg0, View view, int position,long arg3) {// TODO Auto-generated method stubadapter.notifyDataSetChanged(position);//arg2会返回当前选中项的位置,调用此方法,通知更新}

代码:http://download.csdn.net/detail/kongbaidepao/6640881



更多相关文章

  1. Android实现底部tabbar按钮突出效果
  2. Android系列教程之六:TextView小组件的使用--附带超链接和跑马灯
  3. android开发(46) 使用 textview实现文字的阴影效果,浮雕效果
  4. Android实现IOS越界回弹的效果
  5. Android中的popupwindow从底部进入和退出的动画效果
  6. Android 实现书籍翻页效果---番外篇之光影效果
  7. android TextView设置霓虹灯效果

随机推荐

  1. android activity启动模式
  2. ActionBar的使用
  3. 动态壁纸,视频特效- Android
  4. Lua-Lua for Windows(5)
  5. Android(安卓)studio cannot resolve sym
  6. Android(安卓)的消息机制(2)
  7. Android应用多渠道打包脚本
  8. 【Android笔记】(2)ButtonClickPic
  9. android的System.out.println
  10. android studio 开发工具