0

ある画像ビューを別の画像ビューに配置し、単一の画像にしてSDカードに保存するアプリケーションを作成しています。イメージを作成して SD カードに保存するアプリケーションを実行しましたが、このイメージは空白です。SD カードに保存されている 1 つの画像に両方の画像が表示されません。

これが私のコードです。

@SuppressWarnings("deprecation")
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ImageView image2 = (ImageView) findViewById(R.id.ImageViewTwo);
        final ImageView image = (ImageView) findViewById(R.id.ImageViewOne);

        mTempDir = Environment.getExternalStorageDirectory()+"/"+"TestTemp";
        File mtempFile = new File(mTempDir);
        if(!mtempFile.exists())
        {
            mtempFile.mkdir();
        }

        mSaveImageName = "Test.png";
        mBackGround = Bitmap.createBitmap(100 , 100 ,Bitmap.Config.ARGB_8888);

        image2.buildDrawingCache();
        mBackImage  = image2.getDrawingCache();
        mBackImage  = Bitmap.createBitmap(100 , 100 ,Bitmap.Config.ARGB_8888);

        image.buildDrawingCache();
        mTopImage = image.getDrawingCache();
        mTopImage = Bitmap.createBitmap(100 , 100 , Bitmap.Config.ARGB_8888);

        mCanvas = new Canvas(mBackGround);

        //mCanvas.drawBitmap(mBackImage, (mCanvas.getWidth() / 2), 0, null);
        mCanvas.drawBitmap(mBackImage ,0f , 0f , null);
        mCanvas.drawBitmap(mTopImage, 12f , 12f , null);

        try
        {
            mBitmapDrawable = new BitmapDrawable(mBackGround);

            Bitmap mNewSaving = mBitmapDrawable .getBitmap();
            String ftoSave = mTempDir + mSaveImageName;
            File mFile = new File(ftoSave);
            mFileOutputStream = new FileOutputStream(mFile);
            mNewSaving.compress(CompressFormat.PNG, 95 , mFileOutputStream);
            mFileOutputStream.flush();
            mFileOutputStream.close();

        }
        catch(FileNotFoundException  e)
        {
            e.printStackTrace();
        } 
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Log.i(TAG, "Image Created");



        }
4

1 に答える 1

0

余分な行がいくつかあります。

image2.buildDrawingCache();
mBackImage  = image2.getDrawingCache();
// delete next line
mBackImage  = Bitmap.createBitmap(100 , 100 ,Bitmap.Config.ARGB_8888);

image.buildDrawingCache();
mTopImage = image.getDrawingCache();
// delete next line
mTopImage = Bitmap.createBitmap(100 , 100 , Bitmap.Config.ARGB_8888);
于 2013-06-20T13:13:00.550 に答える