我有一个CardView,ImageView与左下角对齐。位图高度与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
你可以通过你的布局代码,因为我不会缩放类型将在未来帮助你 –