我正在尝试通过代码更改白色标记图像上的颜色.我已经读过下面的代码应该改变颜色,但我的标记仍然是白色的.
Drawable.setColorFilter( 0xffff0000, Mode.MULTIPLY )
我错过了什么?有没有其他方法可以改变位于我的res文件夹中的drawables上的颜色?
我有一个ImageView与android:src设置为一个ShapedDrawable,即白圈.我想要的是ImageView在响应某些事件的运行时将其着色.imgView.setColorFilter似乎是解决方案,但在使用此(尝试不同的参数)后,图像变得不可见(我在屏幕上看不到它).
怎么解决这个?还有更好的方法来制作彩色圆圈吗?
android drawable android-imageview colorfilter shapedrawable
我正在做这种类型的项目,在我的项目中动态更改图像颜色.
我有一个黑色的彩色图像,当用户点击这个图像时动态变绿图像颜色.

谷歌搜索和其他文件遵循,但我没有解决我的问题.
请帮帮我,是否有任何方法或文件可以解决我的问题,
我正在开发小型Android应用程序,其中我将drawable资源设置为线性布局的背景.现在,我想要做的是动态地改变线性布局的背景颜色,但是在可绘制资源中.我的代码看起来像:
//  bcd.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>        
    <shape>
        <gradient
            android:endColor="#22000000"
            android:startColor="#22000000"
            android:angle="270" />
        <stroke
            android:width="3dp"
            android:color="@color/white" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
<LinearLayout 
android:id="@+id/lin_llt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
我在我的活动中设置了线性布局的背景,如下所示......
parentLayout = (LinearLayout) view.findViewById(R.id.lin_llt);
parentLayout.setBackgroundResource(R.drawable.bcd);
现在我想做什么我想改变我的可绘制资源的颜色,这意味着改变我的线性布局的颜色,圆角和填充定义在drawable ..
我按照以下方式尝试了这个
ShapeDrawable bgShape = (ShapeDrawable )parentLayout.getBackground();
bgShape.getPaint().setColor(Color.BLACK);
但它不适合我.任何其他解决方案
那怎么办......需要帮助......谢谢......
我使用以下行更改VectorDrawable的颜色:
mydrawable.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_ATOP)
尽管现在已不推荐使用,但效果很好。该文档建议我使用:
mydrawable.getBackground().setColorFilter(new BlendModeColorFilter(color, PorterDuff.Mode.SRC_ATOP))
虽然,BlendModeColorFilter仅在API29上可用。在检查了不赞成使用的方法的源之后,我意识到它调用了:
new PorterDuffColorFilter()
因此,我继续使用:
mydrawable.getBackground().setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP))
着色工作。这是不推荐使用的方法的正确替代方法,还是我必须在API29上使用BlendModeColorFilter?
谢谢。
var upArrow = Resources.GetDrawable(Resource.Drawable.abc_ic_ab_back_material);
upArrow.SetColorFilter(Resources.GetColor(Android.Resource.Color.White), PorterDuff.Mode.SrcIn);
SupportActionBar.SetHomeAsUpIndicator(upArrow);
上面的代码不会改变箭头颜色.upArrow ColorFilter值为null.这应该是什么原因?我不是问如何改变可绘制的颜色.我的问题是为什么上面的代码无法设置滤色器?以下是MainActivity代码.
public class MvxFormsApplicationActivity : FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;
        base.OnCreate(bundle);
        Xamarin.Forms.Forms.Init(this, bundle); ;
        //Plugins.NewictLib.Forms.Android.Renderers.GifImageViewRenderer.Init ();
        DLToolkit.Forms.Controls.FlowListView.Init ();
        UserDialogs.Init ((Activity) Xamarin.Forms.Forms.Context);
        OxyPlot.Xamarin.Forms.Platform.Android.PlotViewRenderer.Init();
        //            var mvxFormsApp = new MvxFormsApp ();
        //            LoadApplication (mvxFormsApp);
        var myApp = new MyFormsApp();
        LoadApplication (myApp );
        AppCompatDelegate.CompatVectorFromResourcesEnabled = true;
        //the following needs to set so that the back button color can be changed
        var upArrow = Resources.GetDrawable(Resource.Drawable.abc_ic_ab_back_material);
        upArrow.SetColorFilter(Resources.GetColor(Android.Resource.Color.White), PorterDuff.Mode.SrcIn); …我在可绘制的png中有一个图标。黑色,透明背景。如何在不添加其他可绘制对象的情况下更改图标颜色?