スケーリングせずにリソースからビットマップ イメージを読み込んだので、ビットマップ描画メソッドを適切なスケーリング マトリックスと組み合わせて使用して、キャンバスに直接描画しようとしています。残念ながら、ビットマップは描画時に正しい寸法を示しているようには見えません。(0.5, 0.5) でポストスケールされた恒等行列は、ビットマップ寸法の半分の画像をレンダリングしません。ここで見落としているものはありますか?
これが私のコードです:
import android.content.Context;
import android.view.View;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Color;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.RectF;
import android.graphics.Matrix;
public class LogoView extends View
{
private final Matrix mf_logoMatrix;
private final Paint mf_paint;
private final Bitmap mf_logoBitmap;
public LogoView(final Context p_context)
{
super(p_context);
mf_logoMatrix = new Matrix();
mf_paint = new Paint();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
mf_logoBitmap = BitmapFactory.decodeResource(p_context.getResources(),
R.drawable.logo_1500,
options);
}
@Override public void onDraw(Canvas p_canvas)
{
mf_paint.setColor(Color.BLACK);
p_canvas.drawPaint(mf_paint);
mf_logoMatrix.reset();
mf_logoMatrix.preScale(0.5f, 0.5f);
p_canvas.setMatrix(mf_logoMatrix);
p_canvas.drawBitmap(mf_logoBitmap, mf_logoMatrix, null);
}
};