5

我想绘制具有渐变背景的图像。我创建了一个可绘制的位图资源,如下所示

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/bg"
        android:tileMode="repeat"
        android:gravity="bottom"
        />

如您所知,定义 tileMode 时会忽略重力。我尝试创建自己的类,该类继承自 BitmapDrawable,但我无法成功。请帮我应用这两个属性:tileMode 和重力。

4

1 回答 1

0

我没有清楚地理解这个问题。这里的目标是什么?

是否使用带有 tileMode 的渐变图像(如 .png .jpg)?

还是使用透明图标并使其成为背景渐变?

另外,为什么在使用 tileMode 时需要重力?tileMode 表示用相同的图像平铺位图的整个区域。由于它将对整个图像执行此操作,因此不会对该图像施加重力,因为所有图像都将被填充。

如果目标是在屏幕的某些部分使用此可绘制位图,请将其添加到您的布局中:

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/mydrawablebitmap"
android:id="@+id/imageview1" />

您可以将其放入您的 layout.xml 并设置您自己的宽度和高度,并根据您的喜好对齐。

如果目标是使用图像并制作其背景,那么您可以使用它:

在您的可绘制文件夹中创建一个 gradient.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
    android:startColor="#E0E0E0"
    android:endColor="#FFFFFF"
    android:angle="-90"/>
</shape>

然后将此图像视图添加到您的布局中:

<ImageView
    android:id="@+id/myimagewithgradientbackground"
    android:layout_width="match_parent"
    android:layout_height="160dp"
    android:background="@drawable/gradient"
    android:src="@drawable/foregroundimage" />

如果您向我提供有关该问题的更多详细信息,我将继续并相应地编辑我的答案。

于 2014-05-23T14:10:02.667 回答