2 回答
TA贡献2019条经验 获得超9个赞
尽管我们可以使用 png 或 或 image 来获取此 . 但如果你真的想在这个可绘制对象上执行此操作,那么这里是代码。
我尝试了一下,结果非常相似。
我使用两层列表创建了一个可绘制对象,其中包含两个不同的矩形。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:bottom="10dip">
<shape
android:shape="rectangle"
android:useLevel="false">
<corners android:radius="12dp" />
<stroke
android:width="2dp"
android:color="#ffffff" />
<size
android:width="60dp"
android:height="60dp" />
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item android:top="20dip">
<shape android:shape="rectangle">
<solid android:color="#800080" />
</shape>
</item>
您可以在您的视图中使用它作为背景。我已经在我的项目中使用过这个,所以我添加了我的项目视图的代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#800080">
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_18"
android:background="@drawable/sample">
<TextView
android:id="@+id/crime_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:text="Crime Title"
android:textColor="@color/colorAccent"
android:textSize="18sp"
app:layout_constraintEnd_toStartOf="@+id/crime_solved"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/crime_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:paddingBottom="8dp"
android:text="Crime Date"
android:textColor="@color/colorAccent"
app:layout_constraintEnd_toEndOf="@id/crime_title"
app:layout_constraintStart_toStartOf="@id/crime_title"
app:layout_constraintTop_toBottomOf="@+id/crime_title" />
<ImageView
android:id="@+id/crime_solved"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
app:layout_constraintBottom_toBottomOf="@+id/crime_date"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/crime_title"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_solved" />
</android.support.constraint.ConstraintLayout>
希望这会有所帮助。
TA贡献1845条经验 获得超8个赞
您可以为该形状创建一个9 补丁图像,而不是使用 xml drawable ,这可能会有所帮助。
在您最喜欢的图像编辑器中创建该形状并将其复制到项目的可绘制目录中。
在 Android Studio 中,右键单击要从中创建 NinePatch 图像的 PNG 图像,然后单击“创建 9-patch 文件”。
输入 NinePatch 图像的文件名,然后单击“确定”。您的图像将使用 .9.png 文件扩展名创建。
双击新的 NinePatch 文件以在 Android Studio 中将其打开。您的工作区现在将打开。左侧窗格是绘图区域,您可以在其中编辑可拉伸面片和内容区域的线条。右侧窗格是预览区域,您可以在其中预览拉伸时的图形。
在 1 像素周界内单击以绘制定义可拉伸面片和(可选)内容区域的线条。右键单击(或在 Mac 上按住 Shift 键并单击)以擦除之前绘制的线条。
完成后,单击“文件”>“保存”以保存更改。
添加回答
举报