Android SDK FingerPaint示例

时间:2011-11-28 08:07:10

标签: android sdk

我有一个关于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位图更改为适当的分辨率来填充所有内容,但这不是我想要的。)

这是我第一次提问,所以如果问题不明确,请告诉我。

1 个答案:

答案 0 :(得分:0)

你会扩展你的位图创建。使用displaymetrics的显示来请求屏幕宽度和高度,并将此值用于创建位图