ShapeDrawable是Android平台提供的一个自定义图形绘制类,可以通过ShapeDrawable绘制出多种图形:矩形、圆角矩形、椭圆形、圆形、扇形等。本文主要介绍如何使用ShapeDrawable绘制出圆形背景。
一、准备工作
在使用ShapeDrawable之前,需要有以下几个条件: 1、在xml文件中定义ShapeDrawable资源。 2、在Java类中调用findViewById()方法获取要设置背景的View。 3、调用View.setBackground()方法将ShapeDrawable资源设置为背景。 下面是一个简单的布局文件,在其中添加一个TextView用于展示圆形背景:
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_circle"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="Hello World!"
android:textSize="20sp"
android:gravity="center"
android:layout_centerInParent="true"/>
</RelativeLayout>
二、使用ShapeDrawable绘制圆形背景
下面是一个示例代码,使用ShapeDrawable绘制圆形背景:
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private TextView mTvCircle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTvCircle = findViewById(R.id.tv_circle);
// 创建OvalShape对象,绘制出一个圆形
OvalShape ovalShape = new OvalShape();
ShapeDrawable drawable = new ShapeDrawable(ovalShape);
drawable.getPaint().setColor(getResources().getColor(R.color.colorAccent));// 设置背景颜色
mTvCircle.setBackground(drawable);// 将ShapeDrawable设置为背景
}
}
上述代码中: 1、创建OvalShape对象,用于绘制圆形。 2、使用OvalShape对象创建一个ShapeDrawable对象。 3、设置ShapeDrawable对象的颜色。 4、调用TextView的setBackground()方法,将ShapeDrawable对象设置为背景。
三、总结
通过本文的介绍,我们学习了如何使用ShapeDrawable绘制出圆形背景。除了圆形背景,ShapeDrawable还可以绘制出矩形、圆角矩形、椭圆形、扇形等多种形状的图形。利用ShapeDrawable,我们可以轻松实现View的自定义背景,提高用户界面的美观性和实用性。