首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Android中应用colorfilter?

无法在Android中应用colorfilter?
EN

Stack Overflow用户
提问于 2015-10-07 02:58:55
回答 1查看 226关注 0票数 0

我正在尝试在Android Studio中给我的图像一个点击效果。其思想是当您按下按钮时应用滤色器,然后在松开按钮后滤色器被清除。

我曾尝试使用OnTouch方法的Switch语句来完成此操作,但是当我打开应用程序时,它就崩溃了。

下面是我的代码:

代码语言:javascript
复制
{
    final ImageView DNIcon_id = (ImageView) findViewById(R.id.DNIcon_id);
    DNIcon_id.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {


            sp.play(DN_id, 1, 1, 1, 0, 1);
            switch (event.getAction()) {

                case (MotionEvent.ACTION_BUTTON_PRESS): {

                    DNIcon_id.setColorFilter(Color.GRAY, PorterDuff.Mode.LIGHTEN);
                    break;
                }
                case (MotionEvent.ACTION_BUTTON_RELEASE): {
                    DNIcon_id.clearColorFilter();
                    break;
                }

            }
            return true;


        }

    });
}
}

如果你知道我做错了什么,请告诉我。我真的很感激。

由衷地,

维达尔

EN

回答 1

Stack Overflow用户

发布于 2016-08-26 22:53:41

将此代码添加到res/values/colors.xml

代码语言:javascript
复制
<color name="opaque">#90FFFFFF</color>

将res/drawable/overlay.xml放入其中

代码语言:javascript
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/opaque" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>

下面是一个如何使用它的示例

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="150dp"
    android:layout_height="150dp">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/your_image_here"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/overlay"/>

</FrameLayout>

颜色上的注释:

您可以更改颜色中的'90‘,使其或多或少变得不透明。请记住,它是十六进制的,所以完全不透明度将是'FF‘。此外,此解决方案假设您在应用程序中使用#FFFFFF作为您的窗口背景。“不透明”颜色的最后6位数字应该是你用来作为窗口背景的任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32977585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档