我需要一个自定义的ImageView,在绘制图像之前绘制一些形状,并使用与实际位图本身相同的“缩放”来绘制图像本身。 一切正常,除了我有一个AlphaAnimation来淡入自定义ImageView。 它淡化了BitmapDrawable部分,但不是我的形状。 形状始终以完全不透明的方式绘制。 我尝试将正在使用的画笔的alpha设置为视图的getAlpha,但没有成功。 这是我自定义ImageView类中的onDraw函数:
@Override
protected void onDraw(Canvas canvas) {
float[] f = new float[9];
getImageMatrix().getValues(f);
final float scaleX = f[Matrix.MSCALE_X];
final float scaleY = f[Matrix.MSCALE_Y];
final Drawable d = getDrawable();
final int origW = d.getIntrinsicWidth();
final int origH = d.getIntrinsicHeight();
final int actW = Math.round(origW * scaleX);
final int actH = Math.round(origH * scaleY);
canvas.drawRect(Math.max((getWidth() - actW) / 2, 0) + 1, Math.max((getHeight() - actH) / 2, 0) + 1, Math.max((getWidth() - actW) / 2, 0) + actW - 1, Math.max((getHeight() - actH) / 2, 0) + actH - 1, paint);
super.onDraw(canvas);
}