0

私はビューを拡張するクラスを持っています...私は2つのビットマップ画像を重ねて表示しています....このために、1つのビットマップ画像を描画可能な画像に変換しようとしていますが、最初の画像の上にdsntが表示されます私はこれがしようとしている.....

public class ShowCanvas extends View {

Bitmap CanvasBitmap;
Bitmap ScaledBitmap;
Bitmap smallbitmap;
private static final int INVALID_POINTER_ID = -1;

private Drawable mImage;
private float mPosX;
private float mPosY;

private float mLastTouchX;
private float mLastTouchY;
private int mActivePointerId = INVALID_POINTER_ID;

private ScaleGestureDetector mScaleDetector;
private float mScaleFactor = 1.f;



public ShowCanvas(Context context) {
    super(context);
    // TODO Auto-generated constructor stub

    ScaledBitmap = DrawView.scaled;



**when i get the image from drawable it shows over the first one...**   

mImage = getResources().getDrawable(R.drawable.dress01);

しかし、私がこれを使用しているとき、dsntは画像を表示します...

mImage = new BitmapDrawable(getResources(), Dress.bitmap);

    System.out.println("Drawable" + mImage);



    int X = mImage.getMinimumWidth();

    int Y = mImage.getIntrinsicHeight();

    System.out.println(" Rough" + X + "\t" + Y);


    mImage.setBounds(0, 0, mImage.getIntrinsicWidth(),
            mImage.getIntrinsicHeight());

}

public void setBitmap(Bitmap bitmap) {
    // TODO Auto-generated method stub
    CanvasBitmap = bitmap;

    System.out.println("CanvasBitmap" + CanvasBitmap);

    int X = CanvasBitmap.getHeight();
    int Y = CanvasBitmap.getWidth();

    System.out.println("CanvasBitmap " + X + "\t" + Y);

}



@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    Paint mpaint = new Paint();
    canvas.save();

    canvas.drawBitmap(ScaledBitmap, 0, 0, mpaint);

    mImage.draw(canvas);

    Log.i("Debug", "mImage.draw(canvas)");

    canvas.restore();

}

}

4

1 に答える 1

3
Drawable d =new BitmapDrawable(bitmap); 

これを使用して、ビットマップ イメージをドローアブルに変換します。

于 2012-05-14T04:45:45.127 に答える