在android中的圆形图像/矩形内实现textview的最佳方法

时间:2016-12-19 10:36:37

标签: android android-layout canvas textview

我正在开发一款Android应用,我需要在圈内显示一些文字,如

enter image description here

文本是动态的。同样,我想在像enter image description here

这样的矩形形状中实现textview

我发现形状xml文件可用于绘制一些形状,如

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <corners android:radius="20dip"/>
    <stroke android:color="@color/colorPrimary" android:width="5dip"/>
    <solid android:color="@android:color/transparent"/>
</shape>

但它不合适,因为我想在文本和圆圈之间留出一些空白空间。我也尝试在textview中使用android:background但是无法实现上述方案。

实施上述方案的最佳方式是什么? 如何实现类似的场景? 我可以使用一些自定义图像,以便可以更改圆/矩形形状以及如何实现此目的吗?

2 个答案:

答案 0 :(得分:1)

你可以使用这样的东西......

btn_bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:radius="50dp" />
    <solid android:color="#000"/>
</shape>

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <Button
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:text="Total Count"
        android:layout_marginTop="40dp"
        android:textSize="36dp"
        android:background="@drawable/btn_bg"
        android:textColor="#fff"
        android:id="@+id/btn"
        />

</RelativeLayout>

答案 1 :(得分:0)

试试这个: -

在你的xml中: -

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/test">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="11" 
        android:layout_centerInParent="true"/>
</RelativeLayout>

@绘制/测试

<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <corners android:radius="20dip"/>
        <size android:height="40dp" android:width="40dp"/>
        <stroke android:color="@color/colorPrimary" android:width="2dip"/>
        <solid android:color="@android:color/transparent"/>
    </shape>