如何设置图像的背景颜色,但在边框内?

时间:2018-10-07 21:44:27

标签: android graphics

我的目标是显示圆形图像,并允许用户分别设置其foregroundbackground的颜色,例如:

desired output

我的尝试是创建具有透明背景的图像资产,然后使用ImageView::setColorFilter更改其前景,并使用ImageView::setBackgroundColor设置其背景。图片资产如下所示:

my attempt

我的问题是我们人类称为“边界”之外的像素也是透明的,所以结果看起来像这样:

undesired result

人们通常如何处理这个问题?尽管我当时在做Android开发,但是任何语言的任何想法或代码片段都值得赞赏!

1 个答案:

答案 0 :(得分:0)

首先,必须创建一个新的可绘制文件,并编写以下代码以创建带有蓝色边框的黄色圆形:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="oval">

     <solid android:color="#cab816" />


     <size android:width="50dp"
      android:height="50dp"/>

     <stroke android:width="2dp"
      android:color="@color/darkBlue"/>
     </shape>

现在,您必须将此可绘制对象设置为imageview的背景,并使用src设置图像。

如果您的图像覆盖了整个圆圈,请使用填充来减小图像尺寸。