博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用gallery展示图片,实现中间图片稍大,两边较小的效果
阅读量:5100 次
发布时间:2019-06-13

本文共 1930 字,大约阅读时间需要 6 分钟。

 

实现原理:在onItemSelected事件中,选中galerry中的图片时,把选中的图片放大,把没有选中的缩小。
以下是关键代码
 1     
public 
void onItemSelected(AdapterView<?> parent, View view, 
int position,
 2             
long id) {
 3         
//
 选中Gallery中某个图像时,放大显示该图像
 4 
        ImageView imageview = (ImageView)view;
 5         ((ImageView) view).setImageDrawable((Drawable) product_image_list.get(position));
 6         view.setLayoutParams(
new Gallery.LayoutParams(520 / 2, 318 / 2));
 7         title.setText((String)product_title.get(position));
 8         info.setText((String)product_info.get(position));
 9         
for(
int i=0; i<parent.getChildCount();i++){
10             
//
缩小选中图片旁边的图片
11 
            ImageView local_imageview = (ImageView)parent.getChildAt(i);
12             
if(local_imageview!=imageview){
13                 local_imageview.setLayoutParams(
new Gallery.LayoutParams(520/4, 318/4));
14                 local_imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);
15             }
16         }
17     }
18     
19     
public 
void onNothingSelected(AdapterView<?> parent)
20     {
21     }
22     
23     
public 
class ImageAdapter 
extends BaseAdapter
24     {
25         
int mGalleryItemBackground;
26         
private Context mContext;
27 
28         
public ImageAdapter(Context context)
29         {
30             mContext = context;
31 
//
            TypedArray typedArray = obtainStyledAttributes(R.styleable.Gallery);
32 
//
            mGalleryItemBackground = typedArray.getResourceId(
33 
//
                    R.styleable.Gallery_android_galleryItemBackground, 0);                        
34 
        }
35         
36         
public 
int getCount()
37         {
38             
return product_image_list.size();
39         }
40 
41         
public Object getItem(
int position)
42         {
43             
return position;
44         }
45 
46         
public 
long getItemId(
int position)
47         {
48             
return position;
49         }
50  
51         
public View getView(
int position, View convertView, ViewGroup parent)
52         {
53             ImageView imageView = 
new ImageView(mContext);
54             imageView.setLayoutParams(
new Gallery.LayoutParams(520/4, 318/4));//默认都是大图
55             imageView.setImageDrawable((Drawable) product_image_list.get(position));
56             imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
57             
return imageView;
58         }
59     }

 

转载于:https://www.cnblogs.com/ProgramBull/archive/2012/02/06/2339727.html

你可能感兴趣的文章
oracle中schema指的是什么?
查看>>
JAVA反射机制
查看>>
第十一章:函数的参数类型
查看>>
元素选择器
查看>>
详解Javascript的继承实现
查看>>
6、0-1背包问题优化
查看>>
VScode中运行python程序,使用Code Runner插件
查看>>
高数概念泛论
查看>>
MySQL 权限管理
查看>>
php错误等级
查看>>
HDU 4763 Theme Section ( KMP next函数应用 )
查看>>
Elasticsearch深入6
查看>>
《面向对象程序设计》课程作业六
查看>>
【python】-集合操作
查看>>
SQL反模式笔记19——明文密码
查看>>
实验三——for 语句及分支结构else-if
查看>>
R语言环境变量的设置 环境设置函数为options()
查看>>
CCFlow SDK模式开发(有比较详细的代码,以服务的形式与ccflow数据库进行数据交互)...
查看>>
windows7内核驱动开发试验环境配置
查看>>
全栈工程师技能图谱
查看>>