android 的 Gallery 的简单使用

原创 2013年12月01日 22:17:20

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;

    }


}
主要访法

	@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



版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓开发中Gallery控件的使用

本文将介绍Gallery控件的简单使用,Gallery控件用于灵活展示图片。 先附上我的布局文件: xml version="1.0" encoding="utf-8"?> xmlns:androi...
  • ZLAKS123456
  • ZLAKS123456
  • 2016年05月16日 14:20
  • 1738

Android Gallery控件使用方法详解

Android Gallery控件的主要功能就是实现图片的浏览。在这里我们可以通过对一段代码的解读详细分析一下这方面的使用技巧。Android手机操作系统中有许多控件的应用可以帮助我们轻松实现一些功能...
  • super005
  • super005
  • 2010年08月28日 02:47
  • 6602

gallery 各种事件监听方法详解

继承关系 public class Gallery extends AbsSpinner implements GestureDetector.OnGestureListener  ...
  • lisineng
  • lisineng
  • 2015年09月16日 16:05
  • 2628

Android使用Gallery实现轮播图效果

android开发中,轮播图效果一般会使用viewpager来实现,但是遇到一些奇怪的需求时,viewpager就实现不了。看下面的效果。 这样的效果实现就需要使用Gallery来完成了,...
  • baidu_33853807
  • baidu_33853807
  • 2017年06月21日 11:34
  • 1312

android Gallery与ImageView的结合使用

Gallery是一个内部元素可以水平滚动,并且可以把当前选择的子元素定位在它中心的布局组件。 本程序的运行效果如下所示:                         具体实现如...
  • Mary881225
  • Mary881225
  • 2012年05月02日 19:30
  • 3722

Android Gallery 滑动停止监听方案

资源描述:  网上查了不少Gallery停止监听位置的方法,都是通过起线程然后睡眠来判断,我觉得这样没必要开线程,耗费资源,同意的举手。 偶然看图库源码的时候看见一段代码,packages\a...
  • az44yao
  • az44yao
  • 2012年12月15日 16:07
  • 6122

android 让gallery中图片默认居左显示

最近项目中有用到gallery,要求默认是在最左边显示出来的,也试过 gallery.setSelection(position) ;但是对于初始状态没有图片的话,就不能这样用了,最后想到一个办法是设...
  • tiangaopan
  • tiangaopan
  • 2016年10月24日 23:08
  • 1331

android gallery 竖直(上下)滑动

最近做一个项目,要求上下滑动gallery,网上找了好多资料都不太理想,不说了,说多了都是泪啊! 先上图:免得误导观众! 下面说一下我的方法: 1,重写VerticalGallery类继承Galle...
  • didiao11300
  • didiao11300
  • 2013年11月18日 12:04
  • 3524

Android学习:Gallery的相册应用

这个学期有嵌入式的课程,需要做一个嵌入式的成品,本来我不想做dai
  • u011388550
  • u011388550
  • 2014年10月15日 09:07
  • 593

Android 解决Gallery下ScrollView滑动事件冲突

在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义...
  • h7870181
  • h7870181
  • 2013年06月29日 15:38
  • 3453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 的 Gallery 的简单使用
举报原因:
原因补充:

(最多只允许输入30个字)