2016-09-16 14 views
0

私はいくつかのボタンと1つの画像ビューを持っています。ギャラリーから写真を読み込むと、写真が画像ビューに表示されます。すべてのボタンについて、画像のエフェクトの1つを適用するクリック方法が適用されます。内部ストレージに写真を保存するためのもう1つのボタンがあります。私は効果の1つが適用された後で写真を保存したい。私は検索しましたが、私はちょうど効果なしで写真を保存する方法を見つける。効果を適用した後に画像を保存する方法をクリック方法で知っていますか?効果を適用した後にビットマップを保存する方法

答えて

0

あなたは、単にこの関数を呼び出すことにより、ImageViewからビットマップを取得することができます。

Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap() 

、次に/アウトでのストリームにしたいあなたのビットマップを保存します。

private void saveBitmapFromImageView(File destFile, ImageView imageView){ 

    Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap() 
    OutputStream os; 
    try { 
     os = new FileOutputStream(file); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os); 
    } catch(Exception e) { 
     Log.e(TAG, "saveBitmapFromImageView", e); 
    } finally { 
     IOUtils.closeQuietly(os); 
    } 
} 

編集#1:

IOUtilsはApache commons libです。

compile 'org.apache.commons:commons-io:1.3.2' 
+0

何らかの理由で、IOUtilisというシンボルが解決されません。より具体的に、どのコードを私のonclickメソッドに入れることができますか? –

+0

IOUtilsは、ストリームをより効率的に扱うのに役立つApacheのコモンズライブラリです。 –

+0

私はonClick()メソッドを使用してクリックすると、いくつかのボタンをいくつかのビットマップに適用します。その後、onclickメソッドを使用して、イメージを内部ストレージに影響を与えて保存します。詳細に説明できますか?私が試しているので、私は解決策を見つけることができません。 –

関連する問題