【发布时间】:2021-05-01 14:49:20
【问题描述】:
我有一个带有 2 个 imageViews 的简单布局:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/takenPicture"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<com.example.dochjavatestimplementation.pkgActivity.ExtendedImageView
android:id="@+id/takenPicture2"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
第一个 ImageView 显示一个位图,第二个 ImageView (1) 是自定义的 ImageView (ExtendedImageView) (2) 它绘制了一个显示在普通 ImageView 之上的画布。
这看起来像这样:
displayimageviews
我想要的是在我的onDraw 方法中绘制矩形后,我想再次清除矩形(现在只是为了测试目的)。这是我的代码的样子:
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStrokeWidth(3);
canvas.drawRect(new Rect(212,0,-720,600),paint);
//clear the rect/contents of canvas again
//try 1
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.MULTIPLY);
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
//try2
Paint transparent = new Paint();
transparent.setAlpha(0);
canvas.drawPaint(transparent);
//try3
setImageResource(0);
}
我尝试以三种不同的方式清除画布/矩形,如上面的代码所示,但它不会改变输出,因为黑色矩形仍然可见。 我现在的问题是原因可能是什么?是因为我没有“更新”画布,还是因为我尝试清除画布?
结果基本上应该是我只看到了第一个imageview
【问题讨论】:
标签: android canvas android-imageview android-drawable ondraw