我想创建这个效果.TextView用透明的半圆作为背景。 我尝试添加drawable作为背景。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="#00000000" />
</shape>
我也试过这个stackoverflow similar question,但它并不适合我。 任何人都可以帮助我吗?
答案 0 :(得分:4)
您无法从xml创建半圆。但是你可以用一个具有适当余量的圆圈来实现你想要的东西。填充。
创建一个固定大小的圆圈,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:useLevel="false" >
<solid android:color="#006AC5" />
<size
android:height="50dp"
android:width="50dp" />
</shape>
现在将它用作TextView的背景,如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFF00">
<ImageView
android:contentDescription="@string/app_name"
android:id="@+id/img"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:layout_alignParentTop="true"
android:background="#006AC5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img"
android:layout_marginTop="-35dip"
android:paddingTop="10dip"
android:background="@drawable/circle"
android:layout_centerHorizontal="true"
android:text="@string/one"
android:gravity="center"/>
</RelativeLayout>
现在,如果你给你的TextView提供-25dip(圆圈高度的一半)的上边距,你会在底部得到一个完美的半圆,但我只添加了另一个10dip(&amp; 10dip填充以保持文本到位)只是为了仔细查看您正在寻找的内容。
如果你想进一步想要改变顶级ImageView&amp;的背景你不希望圆圈的其余部分弄乱外观,你可以在添加TextView之后添加ImageView,这样它就会有更高的z-index,&amp;然后使用单独的TextView在Image上方显示文本。我知道这是非常讨厌的,但它应该有效:)