我有一个TextView,我想要的是制作TextView形状圆,然后根据我使用的不同条件设置不同的背景颜色.我可以根据不同的条件设置背景颜色,但不能制作TextView形状圆.那怎么可以做到.请帮我解决这个问题.
我用的代码是
TextView txt_stage_display = (TextView)findViewById(R.id.txt_stage_display);
if(m_enStage[position] == enSTAGE_START)
{
txt_stage_display.setBackgroundColor(Color.parseColor("#D48393"));
}
else if(m_enStage[position] == enSTAGE_FLOW)
{
txt_stage_display.setBackgroundColor(Color.parseColor("#D48393"));
}
else if(m_enStage[position] == enSTAGE_SAFE)
{
txt_stage_display.setBackgroundColor(Color.parseColor("#66B0CC"));
}
else if(m_enStage[position] == enSTAGE_UNSAFE)
{
txt_stage_display.setBackgroundColor(Color.parseColor("#D8C627"));
}
else if(m_enStage[position] == enSTAGE_FERTILE)
{
txt_stage_display.setBackgroundColor(Color.parseColor("#67A05E"));
}
else
{
txt_stage_display.setBackgroundColor(Color.parseColor("#808080"));
}
Run Code Online (Sandbox Code Playgroud)
yoa*_*oah 47
如果你有相对较小的颜色,你可以为每种颜色创建一个可绘制的文件,例如创建一个文件bg_red.xml:
<?xml version="1.0" encoding="utf-8"?>
<item xmlns:android="http://schemas.android.com/apk/res/android">
<shape>
<solid android:color="#f00" />
<corners
android:topLeftRadius="30dp"
android:topRightRadius="30dp"
android:bottomLeftRadius="30dp"
android:bottomRightRadius="30dp"
/>
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)
然后分配定义TextView:
<TextView
android:id="@+id/tv"
android:layout_height="60dp"
android:layout_width="60dp"
android:text="X"
android:textColor="#fff"
android:textSize="20sp"
android:background="@drawable/bg_red"
android:gravity="center_vertical|center_horizontal"
/>
Run Code Online (Sandbox Code Playgroud)
请注意,宽度是背景角半径的两倍.
要从代码更改颜色:
TextView v = (TextView) findViewById(R.id.my_text_view);
v.setBackgroundResource(R.drawable.bg_blue);
Run Code Online (Sandbox Code Playgroud)
Sud*_*sri 23
要添加到接受的答案,在形状内添加大小标签并确保高度和宽度足够大,即使textView有很多字符,也要确保背景为圆形!
Run Code Online (Sandbox Code Playgroud)<shape> <solid android:color="#f00" /> <corners android:topLeftRadius="30dp" android:topRightRadius="30dp" android:bottomLeftRadius="30dp" android:bottomRightRadius="30dp" /> <size android:height="25dp" android:width="25dp"/> </shape>
小智 6
TextView textView = (TextView) findViewById(R.id.my_text_view);
Drawable drawable = textView.getBackground();
drawable.setColorFilter(getResources().getColor(color), PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)
适合我
| 归档时间: |
|
| 查看次数: |
66903 次 |
| 最近记录: |