我正在尝试创建一个背景为半圆的TextView.我使用ShapeDrawable创建一个椭圆.我试图通过使用ScaleDrawable将椭圆的大小垂直尺寸加倍并剪切它来创建半圆.但是,ScaleDrawable无效.为什么不?在视图背景中绘制半圆的最佳方法是什么?
RES /布局/ activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/main_view"
android:background="@drawable/semicircle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:gravity="center_horizontal"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
RES /抽拉/ semicircle.xml
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/circle"
android:scaleGravity="top|clip_vertical"
android:scaleHeight="200%"
android:scaleWidth="100%" >
</scale>
Run Code Online (Sandbox Code Playgroud)
RES /抽拉/ circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
<solid
android:color="#444" />
</shape>
Run Code Online (Sandbox Code Playgroud)
SRC /.../ MainActivity.java
//...
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
findViewById(R.id.main_view).getBackground().setLevel(10000);
}
//...
Run Code Online (Sandbox Code Playgroud) 我正在使用此代码在我的应用中绘制一半:
<?xml version="1.0" encoding="utf-8" ?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:left="35dp"
android:top="40dp"
android:bottom="40dp"
android:right="0dp">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" android:innerRadius="30dp" android:thickness="0dp">
<solid android:color="@color/transparent"/>
<stroke android:width="3dp" android:color="@color/White"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
输出:
但我需要以下内容:
怎么画这个?
android ×2