Android:用透明度覆盖图片(jpg)

我有一张图片(jpg),我想在屏幕上显示。 此外,图片应该被透明效果部分覆盖。 透明的盖子应该是dynamic的。 因此,例如每天都会显示更多的图片。 这里有一张图片来展示我的意思: 在这里输入图像说明

我有没有灰色封面的图片,并希望添加此封面,但在不同的步骤。

有人可以给我一个提示如何做到这一点。

Solutions Collecting From Web of "Android:用透明度覆盖图片(jpg)"

你可以简单地使用小部件来做到这一点:

FrameLayout是覆盖另一个视图的一般机制:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_image"/> <View android:id="@+id/overlay" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </FrameLayout> 

然后在Java代码中,您可以dynamic设置覆盖层的透明度:

 View overlay = (View) findViewById(R.id.overlay); int opacity = 200; // from 0 to 255 overlay.setBackgroundColor(opacity * 0x1000000); // black with a variable alpha FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 100); params.gravity = Gravity.BOTTOM; overlay.setLayoutParams(params); overlay.invalidate(); // update the view 

你可以做这样的事情,canvas来自onDraw()请求:

 Paint paint = new Paint(); Rect r = new Rect(); paint.setColor(0x80808080); // translucent gray r.right = iDisplayWidth-1; r.left = 0; r.top = iDisplayHeight/2; r.bottom = iDisplayHeight-1; canvas.drawRect(r, paint); // fill with gray