从 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 中加载数据
Retrofit2.0+OkHttp打印Request URL(请求地址参数)