如何在android中创建形状并在该形状上添加文本和图像?

时间:2018-10-18 16:14:03

标签: java android xml

我正在尝试创建绿色形状,并在绿色形状之上添加文本和图像。像这个例子: enter image description here

我在photoshop中创建了此示例,并尝试将其用作<ImageView>,但是图像始终看起来很模糊,因此,我决定使用.xml

重新创建它。

我知道如何创建一个圆,像这样:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
android:useLevel="false" >
<solid android:color="@android:color/transparent" />

<stroke
    android:width="10dp"
    android:color="@android:color/white" />
</shape>

谢谢

2 个答案:

答案 0 :(得分:2)

您有几种选择,但如果我对您的理解正确,那么您希望有一个_execute_sidebar_action可以填满整个屏幕,除了显示图片外还显示一些文字,最后要具有弯曲的背景。

要实现这一目标,可以创建自View(或如View的Android Studio推荐)扩展的自定义ImageView。从android.support.v7.widget.AppCompatImageView扩展意味着我们必须照顾好背景和文本,处理图片将没有问题。

IMO,最好是给自定义ImageView一组参数,并使用Path来绘制背景,而不是使用View,因为这样可以先评估{ {1}}的边界,然后确定应该在哪里绘制曲线。

首先,让我们在res / values / dimens.xml中引入一些尺寸值

ShapeDrawable

然后,活动布局:

View

我用于测试的图片: enter image description here

以及它的外观(我确定文本需要一些微调,但这是另一个问题)

enter image description here

ClippedCircleView.java

<dimen name="clipped_circle_deviation">100dp</dimen>
<dimen name="clipped_circle_padding_top">60dp</dimen>

答案 1 :(得分:1)

除了将其转换为bitmap然后再编写文本外,无法直接在可绘制形状中编写文本。如果您确实想使用Drawable创建它,则应该使用Adobe Illustrator进行创建并将其导出为svg。然后可以将svg导入为 Android Vector Drawable (文件->新建->向量资产->本地文件-> ...)。