我有一个关于Android FingerPaint示例的简单问题:here (网站更新,我的问题是关于旧版本,如下所述)
它首先做的是
setContentView(new MyView(this));
在MyView构造函数中:(网站已更新,但是当我从SDK加载我的Sample时就是这样,我的问题是关于此代码)
public MyView(Context c) {
super(c);
mBitmap = Bitmap.createBitmap(320, 480, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
mPath = new Path();
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
}
这基本上使得位图为320 x 480,但是当我在平板电脑或高分辨率手机上运行此代码时,我注意到它会缩放位图,使绘图对象适当地变大。
我想拥有相同的效果,但在我自己的容器中,myFrameLayout。但是当我从main.xml中将相同的MyView应用到FrameLayout时(省略findViewById和all),
setContentView(R.layout.main);
mV = new MyView(this);
((ViewGroup) myFrameLayout).addView(mV);
它实际上只使用了我整个FrameLayout的320 x 480区域,因此它绘制得很好,但只保留(当我抬起手指时)绘制在myFrameLayout左上角的一小块(320 x 480)上。 / p>
如何在SDK示例中使用320 x 480位图制作MyView缩放并填充myFrameLayout的整个大小?
(我知道我可以将320 x 480位图更改为适当的分辨率来填充所有内容,但这不是我想要的。)
这是我第一次提问,所以如果问题不明确,请告诉我。
答案 0 :(得分:0)
你会扩展你的位图创建。使用displaymetrics的显示来请求屏幕宽度和高度,并将此值用于创建位图