从 Retrofit 获取的颜色参数不会显示在 xml 布局中

Posted

技术标签:

【中文标题】从 Retrofit 获取的颜色参数不会显示在 xml 布局中【英文标题】:Color param which is get from Retrofit is not displayed in xml layout 【发布时间】:2021-07-22 02:22:46 【问题描述】:

我在改造中有一个参数,它只是颜色,其数据形式为“#0DEAB5”,我需要在我的回收站视图中设置它并显示颜色列表,为此我创建了一个 imageView 并分配我对 XML 的 imagView 的参数,但在回收站视图中未查看颜色..所以任何可能有帮助的解决方案请分享...

【问题讨论】:

【参考方案1】:

试试这个:

String color = "#FF" + yourColorString.replace("#",""); // if you get a color of only 6 digits and need an alpha

String color = "#0DEAB5"; // if you don't care about the alpha
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor(color));
yourImageView.setImageDrawable(colorDrawable);

还要注意 yourImageView 必须有一个设置的大小,因为 colorDrawable 没有。

【讨论】:

【参考方案2】:
1.create circle Drawable


   <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval"
        >
    
        <solid
            android:color="@color/colorPrimary"
            />
        <size
            android:
            android:/>
    </shape>

2.set drawable to view 

<View
        android:layout_
        android:background="@drawable/dummy"
        android:layout_/>

3.onbind in reclyeradapter   
    

Drawable mDrawable = ContextCompat.getDrawable(context,R.drawable.circle); 
    mDrawable.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#000000"),PorterDuff.Mode.MULTIPLY));
    final int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) 
        yourview.setBackgroundDrawable(mDrawable);
     else 
        yourview.setBackground(mDrawable);
    `
    
Here we don't want to use glide for transform the view to circle and change the alpha in Color.parseColor("#000000")


  

【讨论】:

我以前设置drawable而不是圆形格式的颜色,然后我用glide将颜色设置为图像,可以用view吗? ,你能说一下吗? 检查答案。我希望它会有所帮助

以上是关于从 Retrofit 获取的颜色参数不会显示在 xml 布局中的主要内容,如果未能解决你的问题,请参考以下文章

Retrofit 中的 Enqueue 方法不会在 Fragment 中加载数据

echarts中常用的参数

Retrofit2.0+OkHttp打印Request URL(请求地址参数)

Retrofit2.0+OkHttp打印Request URL(请求地址参数)

链接多个调用 RxJava、Room 和 Retrofit

使用 Retrofit 发送带有参数的 Post 请求