我想绕过视图的各个角落,并在运行时根据内容更改视图的颜色。
TextView v = new TextView(context);
v.setText(tagsList.get(i));
if(i%2 == 0){
v.setBackgroundColor(Color.RED);
}else{
v.setBackgroundColor(Color.BLUE);
}
v.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
v.setPadding(twoDP, twoDP, twoDP, twoDP);
v.setBackgroundResource(R.drawable.tags_rounded_corners);
我希望设置一个可绘制的和颜色会重叠,但他们没有。我第二次执行的那一个就是生成的背景。
有没有办法以编程方式创建这个视图,记住背景颜色要到运行时才会决定?
编辑:我现在只在红色和蓝色之间交换测试。稍后,颜色将由用户选择。
编辑:
标记为圆角。xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:bottomRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"/>
</shape>
我认为最快的方法是:
GradientDrawable gradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM, //set a gradient direction
new int[] {0xFF757775,0xFF151515}); //set the color of gradient
gradientDrawable.setCornerRadius(10f); //set corner radius
//Apply background to your view
View view = (RelativeLayout) findViewById( R.id.my_view );
if(Build.VERSION.SDK_INT>=16)
view.setBackground(gradientDrawable);
else view.setBackgroundDrawable(gradientDrawable);
设置圆角和向视图添加随机背景色的总编程方法。我还没有测试代码,但你明白了。
GradientDrawable shape = new GradientDrawable();
shape.setCornerRadius( 8 );
// add some color
// You can add your random color generator here
// and set color
if (i % 2 == 0) {
shape.setColor(Color.RED);
} else {
shape.setColor(Color.BLUE);
}
// now find your view and add background to it
View view = (LinearLayout) findViewById( R.id.my_view );
view.setBackground(shape);
这里我们使用了渐变绘图,这样我们就可以使用渐变绘图#setCornerRadius
,因为ShapeDrawable
不提供任何这样的方法。
取回背景绘图并设置它的颜色:
v.setBackgroundResource(R.drawable.tags_rounded_corners);
GradientDrawable drawable = (GradientDrawable) v.getBackground();
if (i % 2 == 0) {
drawable.setColor(Color.RED);
} else {
drawable.setColor(Color.BLUE);
}
此外,您还可以在标记的圆角中定义填充。xml
:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp" />
<padding
android:top="2dp"
android:left="2dp"
android:bottom="2dp"
android:right="2dp" />
</shape>
问题内容: 设置背景: 是最好的方法吗? 问题答案: ;是正确的。 实现它的另一种方法是使用以下方法: 但我认为出现此问题是因为你尝试加载大图像。 这是一个很好的教程,介绍如何加载大位图。 更新: API级别22中不推荐使用getDrawable(int) 现在API级别22中不推荐使用。你应该改用支持库中的以下代码: 如果你引用的源代码,它将为你提供以下信息: 有关ContextCompat的更
我尝试了以下代码: 但是我得到了一个错误:我正在从外部源获取颜色十六进制,因此无法将其嵌入颜色中。xml。此外,我想改变色调,而不是背景,所以挫折是不是一个选项。
本文向大家介绍Android中TextView显示圆圈背景或设置圆角的方法,包括了Android中TextView显示圆圈背景或设置圆角的方法的使用技巧和注意事项,需要的朋友参考一下 前言 在我们学习android这么久,而且使用TextView那么长时间,我们一直没有用过给TextView添加背景,或者是给TextView添加添加边框,以及怎么样设置TextView的形状。今天在写代码的时候就用
问题内容: 当我尝试在Swift中创建按钮并设置背景图片时: 我总是收到一个错误:“ 无法将表达式的类型’Void’转换为’UIImage’ ”。 问题答案: 您的代码应如下所示
如何以编程方式创建此形状? 我尝试过这个简单的函数,它可以获取角点、颜色并将其设置为形状: 但我有个错误: 类型LinearLayout的方法getDrawable()未定义
问题内容: 我的问题很简单 如何以编程方式设置我的按钮layout_gravity? 我在互联网上找到了它,但它只是抛出了一个Nullpointer异常: 有什么办法吗? 问题答案: Java Kotlin 有关重力值以及如何设置重力,请检查“重力”。 基本上,您应该选择依赖于父项。可以是等等。