java - 改变资源的颜色

标签 java android drawable android-drawable android-resources

我有一个资源 png of a house如果您想查看它,请链接。它基本上只是一个黑色的主页按钮。

我将它作为可绘制的图像 Assets 包含并导入。

我试图将其设置为按钮,但通过编程将其更改为白色。

这是我尝试将颜色更改为白色的方法:

        ImageButton txtbtnAccept = new ImageButton(this);
        this._surveyHomeButton = txtbtnAccept;
        txtbtnAccept.setId(this.generateViewId());
        txtbtnAccept.setLayoutParams(new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        layoutParams = (RelativeLayout.LayoutParams) txtbtnAccept.getLayoutParams();
        layoutParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
        layoutParams.height = 200;
        layoutParams.width = 200;
        txtbtnAccept.setScaleType(ImageView.ScaleType.FIT_CENTER);
        txtbtnAccept.setAdjustViewBounds(true);

        txtbtnAccept.setLayoutParams(layoutParams);

        txtbtnAccept.setBackgroundResource(0);
        txtbtnAccept.setVisibility(View.GONE);

        Bitmap homeImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_home);
        Drawable whiteImg = new BitmapDrawable(getResources(), homeImage);

        whiteImg.setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);
        txtbtnAccept.setImageDrawable(whiteImg);
        txtbtnAccept.setImageBitmap(homeImage);

知道我哪里出错了吗?

最佳答案

你想要的是所谓的着色。看看DrawableCompat.setTint(Drawable, int) .

关于java - 改变资源的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173313/

相关文章:

java - 不满意的依赖异常 : Error creating bean with name 'requestMappingHandlerAdapter'

java - MySQL 不会插入 double 值

java - 搜索算法(DFS、BFS、A 星等)。如何在没有 "freezing"的情况下更新 GUI(更新状态)?

java - Maven 针对不同平台目标(例如 Android 和 Java SE)构建和部署

java - 如何访问作为另一个类中的对象的局部变量? - java

java - 安卓快速连接/协议(protocol)

java - Java 中的日期和时间比较

android - 在Android中对ImageView应用连续的动画

android - android drawable如何自动改变?

android - BottomNavigationView 文本在更改时闪烁