我有一個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
你可以通過你的佈局代碼,因爲我不會縮放類型將在未來幫助你 –