0

この質問では、 ImageViewは回転後に元の状態にリセットされます。私は、imageViewを回転させ、回転後も維持する方法を知っています。

しかし今、私は回転した画像に基づいてスケーリングを行う必要があります。拡大縮小すると、画像は回転する前に元の画像にリセットされますが、これは私が望んでいることではありません。

そこで、回転後にImageViewからビットマップを取得し、ImageViewに新しいビットマップを使用させたいと思います。質問は:

回転後にImageViewからビットマップを取得するにはどうすればよいですか?

4

1 に答える 1

1

imageviewからビットマップを取得するには:

  imageview.buildDrawingCache();
    Bitmap bm=imageview.getDrawingCache();

ファイルに保存するには:

OutputStream fOut = null;
    Uri outputFileUri;
     try {
    File root = new File(Environment.getExternalStorageDirectory()
      + File.separator + "folder_name" + File.separator);
    root.mkdirs();
   File sdImageMainDirectory = new File(root, "myPicName.jpg");
    outputFileUri = Uri.fromFile(sdImageMainDirectory);
    fOut = new FileOutputStream(sdImageMainDirectory);
   } catch (Exception e) {
    Toast.makeText(this, "Error occured. Please try again later.",
      Toast.LENGTH_SHORT).show();
   }

   try {
    bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
    fOut.flush();
    fOut.close();
   } catch (Exception e) {
   }
于 2012-08-28T10:07:45.090 に答える