私は、ユーザーがアプリケーションに画像を表示するために、下側に斜めにカットされた画像ビューを実装しようとしています。これは私が取るアプローチですカスタムImageViewが画像を表示していません
- ImageViewを拡張するカスタムクラスを作成します。
- 私は、図形を描画するonDrawメソッドをオーバーライドします(私は私のカスタムImageViewのクラスは
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); } }
正しい事をやっているかはわからない場所です
これは私が最終的に得ているものです - 青い部分はイメージビューです。ここには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" />
これは機能し、描画された領域の透明度を設定するのに役立ちました –