当前位置: 首页 > 知识库问答 >
问题:

改变资源的颜色

柯天宇
2023-03-14

我有一个房子的资源链接,如果你想查看它。它基本上只是一个黑色的主页按钮。

我有它包括和导入作为图像资产作为绘图。

我试图将其设置为按钮,但以编程方式将其更改为白色。

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

        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);

知道我哪里出错了吗?

共有1个答案

麹耘豪
2023-03-14

你想要的叫做着色。看看DrawableCompat.setTint(Drawable,int)。

 类似资料:
  • Android Studio现在支持vector assets on 21,并将在编译时为较低版本生成PNG。我有一个要更改填充颜色的向量资源(来自材质图标)。这适用于21,但生成的PNG不会更改颜色。有没有办法做到这一点?

  • 我想通过以下方式更改JButton的颜色: 为了进行更改,我必须补充: 但是,这会删除边缘周围的曲线,从而更改按钮的形状。有没有一种方法可以简单地改变颜色并保留其他属性?另一个例子是当你按下一个按钮而没有改变它的颜色时,颜色的改变(变暗)。 下面是一些代码,说明了这两个按钮之间的区别: 谢谢

  • 目前我正在为下载资源编写一个带有运行更新的插件。这意味着我调用一个固定的endpointURL,比如: https://www.example.com/downloads/app/latest 如果调用此URL,服务器将传送所请求资源的最新版本(例如,可执行应用程序)。资源的名称可能不同,但也可能与旧版本相同。因此,我想把一个工作的最后修改头。 基本上,我从这个问题中获得了要设置的头:使用head

  • 我使用的是Eclipse Color Theme插件。 当我更改主题时,除了.等之外,所有的颜色都改变了。 它们保持黑色,而当我试图使用深色主题时,这使得事情变得困难。 问题是在使用Groovy时没有正确设置语法颜色。 这解决了问题

  • 我读了一些线来改变这里的颜色。但我的问题有点不同 我使用下面的代码在谷歌地图中设置了一个标记 默认标记颜色为红色,我需要将该红色更改为我所拥有的颜色: 资源-- 怎么做呢?