ImageViewが左下に整列したcardviewがあります。ビットマップの高さが一致しません同じ値に設定されていてもImageViewの高さが
私はImageViewの高さを取得し、ビットマップの高さとして設定しています。
iv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int height = iv.getMeasuredHeight();
Paint widthPaint = new Paint();
widthPaint.setTextSize(200f);
float width = widthPaint.measureText(text);
Bitmap bmOverlay = Bitmap.createBitmap((int) width + S.dpToPx(ctx, 20), height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmOverlay);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStyle(Paint.Style.FILL);
canvas.drawColor(Color.argb(220, 244, 244, 244));
paint.setColor(Color.TRANSPARENT);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
paint.setTextSize(200f);
paint.setTextAlign(Paint.Align.CENTER);
canvas.drawText(text, canvas.getWidth()/2, (canvas.getHeight()/2) - ((paint.descent() + paint.ascent())/2), paint);
iv.setImageBitmap(bmOverlay);
}
});
iv.getMeasuredHeight();
とbmOverlay.getHeight()
の両方の出力は120である。しかし、ビットマップはImageViewのをカバーしていません。なぜ私は理解できません。
ImageViewのXML。
<ImageView
android:id="@+id/rquiz_iv_topic"
android:layout_width="80dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"/>
android:scale_type = "fitxy" – HourGlass
私はスケールタイプがあなたの将来のお手伝いになるので、あなたのレイアウトコードより先に進むことができます –