相关疑难解决方法(0)

以编程方式更改可绘制颜色

我正在尝试通过代码更改白色标记图像上的颜色.我已经读过下面的代码应该改变颜色,但我的标记仍然是白色的.

Drawable.setColorFilter( 0xffff0000, Mode.MULTIPLY )
Run Code Online (Sandbox Code Playgroud)

我错过了什么?有没有其他方法可以改变位于我的res文件夹中的drawables上的颜色?

android

119
推荐指数
11
解决办法
16万
查看次数

使用ShapedDrawable将ColorFilter应用于ImageView

我有一个ImageViewandroid:src设置为一个ShapedDrawable,即白圈.我想要的是ImageView在响应某些事件的运行时将其着色.imgView.setColorFilter似乎是解决方案,但在使用此(尝试不同的参数)后,图像变得不可见(我在屏幕上看不到它).

怎么解决这个?还有更好的方法来制作彩色圆圈吗?

android drawable android-imageview colorfilter shapedrawable

39
推荐指数
3
解决办法
7万
查看次数

如何在android中动态更改图像颜色?

我正在做这种类型的项目,在我的项目中动态更改图像颜色.

我有一个黑色的彩色图像,当用户点击这个图像时动态变绿图像颜色.

在此输入图像描述

谷歌搜索和其他文件遵循,但我没有解决我的问题.

请帮帮我,是否有任何方法或文件可以解决我的问题,

android

32
推荐指数
5
解决办法
5万
查看次数

如何在android中改变可绘制形状的颜色

我正在开发小型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>
Run Code Online (Sandbox Code Playgroud)

<LinearLayout 
android:id="@+id/lin_llt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
Run Code Online (Sandbox Code Playgroud)

我在我的活动中设置了线性布局的背景,如下所示......

parentLayout = (LinearLayout) view.findViewById(R.id.lin_llt);
parentLayout.setBackgroundResource(R.drawable.bcd);
Run Code Online (Sandbox Code Playgroud)

现在我想做什么我想改变我的可绘制资源的颜色,这意味着改变我的线性布局的颜色,圆角和填充定义在drawable ..

我按照以下方式尝试了这个

ShapeDrawable bgShape = (ShapeDrawable )parentLayout.getBackground();
bgShape.getPaint().setColor(Color.BLACK);
Run Code Online (Sandbox Code Playgroud)

但它不适合我.任何其他解决方案

那怎么办......需要帮助......谢谢......

android background drawable android-linearlayout

27
推荐指数
2
解决办法
5万
查看次数

setColorFilter在API29上已弃用

我使用以下行更改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?

谢谢。

android

15
推荐指数
3
解决办法
3575
查看次数

SetColorFilter在Xamarin.Android中不起作用

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);
Run Code Online (Sandbox Code Playgroud)

上面的代码不会改变箭头颜色.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); …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin.android xamarin

5
推荐指数
1
解决办法
1311
查看次数

从可绘制资源中更改png图标的颜色

我在可绘制的png中有一个图标。黑色,透明背景。如何在不添加其他可绘制对象的情况下更改图标颜色?

icons png android android-drawable

1
推荐指数
2
解决办法
8434
查看次数