【Android】为ImageView添加阴影效果(模态效果)

本文介绍如何为Android应用中的ImageView设置触摸反馈效果,包括阴影显示及透明度变化,并提供了一种实现方式及其代码示例。

例如在适配器中:

设置监听: 

viewholder.g_imageview_item.setOnTouchListener(onTouchListener);

View.OnTouchListener onTouchListener = new OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			imageView = (ImageView) v;
			if (event.getAction() == MotionEvent.ACTION_DOWN) {
				imageView.setImageDrawable(g_context.getResources().getDrawable(R.drawable.moreapp_filter));//蒙版图片
				imageView.invalidate();
			}
			return false;
		}
	};

然后在条目点击事件中清除imageview:

convertView.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				g_onClick.onClick(position, channel);
				if (imageView != null) {
					imageView.setImageDrawable(null);
				}
			}
		});

g_imageview_item的布局如下:

其中@drawable/moreapp_filter是一张阴影图片

 <ImageView
        android:id="@+id/moreitem_imageView_icon"
        android:layout_width="54dip"
        android:layout_height="54dip"
        android:src="@drawable/moreapp_filter"
        android:scaleType="centerCrop"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="6dip"
        android:layout_marginTop="20dip" />

另外还有一篇比较好的文章:

ImageView阴影效果

或者:

View.OnTouchListener onTouchListener =new View.OnTouchListener(){ 
@Override 
public boolean onTouch(View v, MotionEvent event) { 
ImageView imgView=(ImageView )v; 
if(event.getAction()==MotionEvent.ACTION_DOWN) { 
imgView.setAlpha(0xDF); 
imgView.invalidate(); 
} else if(event.getAction()==MotionEvent.ACTION_UP||event.getAction()==MotionEvent.ACTION_CANCEL) { 
imgView.setAlpha(0xFF); 
imgView.invalidate(); 
} 
return false; 
}};

不过上面的这种效果不是很好。

转载于:https://my.oschina.net/u/141132/blog/346213

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值