自定义ImageView,点击反馈效果
来源:互联网 发布:云计算平台技术架构 编辑:程序博客网 时间:2024/05/17 23:37
又是一个简单的自定义ImageView
先上效果图:
点击后不松开的状态是原图加了个阴影。
功能如下:
不点击的时候是某张图片,点击后是某张图片
废话不多讲,上代码:
step1:新建 Java文件 ClickFeedbackImageView.java
import android.content.Context;import android.content.res.TypedArray;import android.graphics.drawable.Drawable;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.widget.ImageView;import com.jabez.demo.R;/** * Created by Jabez on 2017/5/15. */public class ClickFeedbackImageView extends ImageView implements View.OnTouchListener { private Drawable mPressedDrawable; private Drawable mNormalDrawable; public ClickFeedbackImageView(Context context) { super(context); } public ClickFeedbackImageView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); mNormalDrawable = getDrawable(); final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ClickFeedbackImageView); /**获取自定义属性pressed的Drawable并用成员变量保存*/ mPressedDrawable = a.getDrawable(R.styleable.ClickFeedbackImageView_pressed); setOnTouchListener(this); if (mPressedDrawable !=null && isPressed()) { //如果在布局中设置了pressed与normal,我们就要设置ImageView的图片为mPressedDrawable setImageDrawable(mPressedDrawable); } a.recycle(); } @Override public void setImageDrawable(@Nullable Drawable drawable) { super.setImageDrawable(drawable); } @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN://按下 setImageDrawable(mPressedDrawable); break; case MotionEvent.ACTION_UP://松开 setImageDrawable(mNormalDrawable); break; default:break; } return false; }}
step2:res/value/attr.xml搞事情
-----------如果没有attr.xml就新建一个----------
--------------这里是自定义的属性---------------------------------
<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="ClickFeedbackImageView"> <attr name="pressed" format="reference" /> <attr name="normal" format="reference" /> </declare-styleable></resources>
step3:在布局里面用吧
<com.jabez.demo.widget.ClickFeedbackImageView android:layout_width="100dp" android:layout_height="wrap_content" android:src="@mipmap/img_normal" app:pressed="@mipmap/img_pressed" android:adjustViewBounds="true"/>PS:app:pressed="@mipmap/img_pressed"的使用需要在根布局添加这个
xmlns:app="http://schemas.android.com/apk/res-auto"完工!!!
阅读全文
0 0
- 自定义ImageView,点击反馈效果
- Android自定义点击效果的ImageView
- 自定义控件实现imageview的点击效果
- Android 自定义Imageview的点击效果
- Android,自定义一个点击变暗效果的ImageView
- 自定义控件之ImageView实现点击之后有阴影效果
- ImageView点击效果
- ImageView没有点击效果
- 自定义ImageView点击缩放
- ios 仿微信通讯录自定义侧栏sideView的滑动点击震动反馈效果
- ImageView 点击效果 selector 设置
- ImageView点击效果(变色)
- 艺术般的波浪点击反馈效果
- 自定义ImageView,点击可旋转
- Android自定义View之仿去哪儿ImageView标签点击效果
- listview imageview scrollview自定义效果
- ImageView适配器点击效果失效 解决方法
- ImageView和TextView的background点击效果
- Touch事件--对GestureDetector的理解
- postgresql 弱口令 UDF 攻击
- Bugly全量更新接入
- Error:Execution failed for task ':app:buildInfoDebugLoader'. 解决方法
- JWT
- 自定义ImageView,点击反馈效果
- xcode断点无效无法调试的一个问题
- CodeForces 472D Design Tutorial: Inverse the Problem (最小生成树+lca)
- iOS 系统架构及常用框架
- PCL_1.8配置VS2013步骤(根据文件所在位置不同更改文件名)
- .obj文件格式与.mtl文件格式
- SQL LEFT JOIN 关键字
- Lucene学习
- mariadb数据库的搭建与管理