gpt4 book ai didi

java - 自定义 ImageView 不显示图像

转载 作者:行者123 更新时间:2023-11-29 19:21:05 25 4
gpt4 key购买 nike

我正在尝试在底部实现一个带有对角线切割的 ImageView ,我将使用它在我的应用程序上显示图像。这是我采取的方法

  1. 我创建了一个扩展 ImageView 的自定义类。
  2. 然后我重写 onDraw 方法来绘制形状(这是我不确定我做的是否正确的地方

My custom imageview class

public class DiagonalSquare extends ImageView {

private Context mContext;
Paint paint ;
Path path;

public DiagonalSquare(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
setWillNotDraw(false);
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
}

@Override
protected void onDraw(Canvas canvas) {

int w = getWidth(), h = getHeight();
paint.setStrokeWidth(2);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setAntiAlias(true);

path = new Path();
path.setFillType(Path.FillType.EVEN_ODD);

path.moveTo(w,h*3/4);
path.lineTo(w,h);
path.lineTo(0,h);
path.close();
canvas.drawPath(path, paint);
}
}

The result I end up getting

这就是我最终得到的 - 蓝色部分是 ImageView 。这是它的 xml

  <com.noel.CustomShape.DiagonalSquare
android:id="@+id/background_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
android:src="@drawable/bebe" />

最佳答案

您缺少对 super.onDraw(canvas);

的调用

关于java - 自定义 ImageView 不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com