在android中的textview的圆角

San*_*dav 156 android shapes textview

我有一个textview,并希望它的角落呈圆形.我已经知道可以使用了android:background="@drawable/somefile".在我的情况下,此标记已包含在内,因此无法再次使用.例如android:background="@drawable/mydialogbox",已经在那里创建背景图像

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_gravity="top"
    android:background="@drawable/mydialogbox"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textview_name"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

所以当我textview(textview_name)还想要圆角时,如何实现这一目标.

dip*_*ali 410

1)rounded_corner.xmldrawable文件夹中创建并添加以下内容,

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >         
   <stroke
          android:width="1dp"
          android:color="@color/common_border_color" />

   <solid android:color="#ffffff" />

   <padding
           android:left="1dp"
           android:right="1dp"
           android:bottom="1dp"
           android:top="1dp" />

   <corners android:radius="5dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

2)在TextViewbackground属性中设置此drawable.例如:

android:background="@drawable/rounded_corner"

我希望这对你有用.

  • 答案是正确的,只是发布的人没有详细解释它.你需要创建一个xml [例如.使用上面的代码在drawable文件夹中的rounded_view.xml].在你的textview周围的布局中把它作为参数android:background ="@ drawable/rounded_view" (14认同)
  • xml 代码应包含在 `&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"&gt;` 内 (8认同)
  • 添加`android:shape ="rectangle"`如果它不适合你 (4认同)
  • android:background ="@ drawable/rounded_corner"不要在这里使用扩展名! (3认同)

pre*_*nda 16

由于您的顶级视图已经具有android:background属性集,因此您可以使用<layer-list>(链接)创建一个新的XML drawable,它结合了旧背景和新的圆角背景.

<item>列表中的每个元素都将绘制在下一个元素上,因此列表中的最后一个项目最终位于顶部.

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/mydialogbox" />
    </item>
    <item>
        <shape>
            <stroke
                android:width="1dp"
                android:color="@color/common_border_color" />

            <solid android:color="#ffffff" />

            <padding
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />

            <corners android:radius="5dp" />
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)


Pha*_*inh 14

除此之外radius,还有一些属性圆角状topRightRadius,topLeftRadius,bottomRightRadius,bottomLeftRadius

例子TextViewred边界with corner and灰色`背景

bg_rounded.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="10dp"
        android:color="#f00" />

    <solid android:color="#aaa" />

    <corners
        android:radius="5dp"
        android:topRightRadius="100dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

的TextView

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_rounded"
    android:text="Text"
    android:padding="20dp"
    android:layout_margin="10dp"
    />
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述


Gab*_*tti 14

通过材料组件库,您可以使用MaterialShapeDrawable.

随着TextView

    <TextView
        android:id="@+id/textview"
        ../>
Run Code Online (Sandbox Code Playgroud)

您可以以编程方式应用一个MaterialShapeDrawable

float radius = getResources().getDimension(R.dimen.corner_radius);

TextView textView = findViewById(R.id.textview);
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
        .toBuilder()
        .setAllCorners(CornerFamily.ROUNDED,radius)
        .build();

MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);
ViewCompat.setBackground(textView,shapeDrawable);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如果要更改背景颜色和边框,只需应用:

shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,R.color.....));
shapeDrawable.setStroke(2.0f, ContextCompat.getColor(this,R.color....));
Run Code Online (Sandbox Code Playgroud)

  • 很棒的答案!@nyxee textViewcorner_radius 只是一个 float ;设置您想要的任何值:float radius = 12f; 例如。 (2认同)

San*_*inh 11

有两个步骤

1)在您的可绘制文件夹中创建此文件:- rounded_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
         <corners android:radius="10dp" />  // set radius of corner
         <stroke android:width="2dp" android:color="#ff3478" /> // set color and width of border
         <solid android:color="#FFFFFF" /> // inner bgcolor
</shape>
Run Code Online (Sandbox Code Playgroud)

2) 将此文件设置为您的TextView作为背景属性。

android:background="@drawable/rounded_corner"
Run Code Online (Sandbox Code Playgroud)

您也可以在 Button 或 Edittext 中使用此 drawable


goo*_*oid 6

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dp" />
            <solid android:color="#ffffff"/>

        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)


Tad*_*Tad 6

您可以使用提供的矩形形状(没有渐变,除非您想要一个),如下所示:

drawable/rounded_rectangle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="5dp" />
    <stroke android:width="1dp" android:color="#ff0000" />
    <solid android:color="#00ff00" />
</shape>
Run Code Online (Sandbox Code Playgroud)

然后在您的文本视图中:

android:background="@drawable/rounded_rectangle"
Run Code Online (Sandbox Code Playgroud)

当然,您需要自定义尺寸和颜色。


Sou*_*Roy 5

在drawable文件夹下创建一个xml gradient.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"  >
            <corners android:radius="50dip" />
            <stroke android:width="1dip" android:color="#667162" />
            <gradient android:angle="-90" android:startColor="#ffffff" android:endColor="#ffffff" />
        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

然后将此添加到您的TextView

android:background="@drawable/gradient"
Run Code Online (Sandbox Code Playgroud)


小智 5

  1. 右键单击可绘制文件夹并创建新文件
  2. 根据您的名字命名文件,并将扩展名添加为.xml
  3. 在文件中添加以下代码
  <?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
      <corners android:radius="5dp" />
      <stroke android:width="1dp"  />
      <solid android:color="#1e90ff" />
  </shape>
Run Code Online (Sandbox Code Playgroud)
  1. 将线条添加到需要倒圆角的位置 android:background="@drawable/corner"