Android 在背景图像上重复图像渐变
我正在从服务器下载图像并将其设置为背景。但我需要为背景图像指定重复图像梯度,我有一些文本需要在上面显示 这是我的代码,用于从服务器下载图像并将其设置为后台Android 在背景图像上重复图像渐变,android,image,gradient,Android,Image,Gradient,我正在从服务器下载图像并将其设置为背景。但我需要为背景图像指定重复图像梯度,我有一些文本需要在上面显示 这是我的代码,用于从服务器下载图像并将其设置为后台 Bitmap bitmap = DownloadImage(imageUrl); BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap); bitmapDrawable.setGravity(Gravity.BOTTOM|Gravity.RIGHT); //Drawable d =
Bitmap bitmap = DownloadImage(imageUrl);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
bitmapDrawable.setGravity(Gravity.BOTTOM|Gravity.RIGHT);
//Drawable d = new BitmapDrawable(bitmap);
myLinearLayout.setBackgroundDrawable(bitmapDrawable);
我创建了一个图层列表,我需要在背景顶部显示它
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient
android:type="radial" android:gradientRadius="500"
android:startColor="#17568A"
android:endColor="#494C4F" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/gradient_dish"
android:tileMode="repeat" />
</item>
</layer-list>
但我已经将服务器映像分配给布局背景,所以无法在背景中分配此xml文件
我有一个图像“梯度盘”,我想重复,并希望与背景图像显示
我该怎么做?请给我提供一些参考或链接。提前感谢…为什么不将图像作为背景放在一个简单的视图中,该视图横跨整个屏幕,然后将布局的其余部分放在该视图的“顶部”,并使渐变为半透明(分别从非透明颜色开始,变为半透明或完全透明的颜色)。
这样,图像将根据需要显示为true。使用从web检索的图像,您可以构建所需的可绘制内容,也可以从发布的xml文件中添加可绘制内容。您可以使用以下方法:
public Drawable createBackground(Bitmap bitmap) {
Drawable[] layers = new Drawable[3];
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
bitmapDrawable.setGravity(Gravity.BOTTOM | Gravity.RIGHT);
layers[0] = bitmapDrawable;
GradientDrawable gd = new GradientDrawable();
gd.setShape(GradientDrawable.RECTANGLE);
gd.setGradientRadius(500);
gd.setGradientType(GradientDrawable.RADIAL_GRADIENT);
gd.setColors(new int[] { Color.parseColor("#17568A"),
Color.parseColor("#494C4F") });
layers[1] = gd;
BitmapDrawable lastBitmapDrawable = (BitmapDrawable) getResources()
.getDrawable(R.id.gradient_dish);
lastBitmapDrawable.setTileModeX(TileMode.REPEAT);
layers[2] = lastBitmapDrawable;
LayerDrawable bck = new LayerDrawable(layers);
return bck;
}
那么你只需要做:
Bitmap bitmap = DownloadImage(imageUrl);
myLinearLayout.setBackgroundDrawable(createBackground(bitmap));
难道你不能简单地从从web获取的
BitmapDrawable
代码中创建一个LayerDrawable
,然后从你发布的xml drawable中创建一个层,并将其用作背景吗?你对此有任何参考代码吗?看看这个你能发布你的答案吗。。。你解决了我的问题,所以我只想把这笔赏金分配给你……:-)你能帮我一个忙吗。它在模拟器上工作,但在真实设备上不工作。。。怎样?谢谢…@SandipArmalPatil它以哪种方式不工作(不完整,图像根本不显示)?另外,您在哪个设备上测试了它,使用了什么api级别(您是否也尝试过在其他设备上测试)?