2012-08-26 12 views
5

これは私のコードで、画像をギャラリーに保存するだけの画像保存ボタンが必要です。ギャラリーに画像を保存

package com.nk_apps.hip.hop.lyric.wallpapers; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageView; 

public class Wallpapers extends Activity implements OnClickListener { 
} 
    ImageView display; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.wallpapers); 

     display = (ImageView) findViewById(R.id.IVDisplay); 
     ImageView image1 = (ImageView) findViewById(R.id.IVimage1); 
     ImageView image2 = (ImageView) findViewById(R.id.IVimage2); 
     ImageView image3 = (ImageView) findViewById(R.id.IVimage3); 
     ImageView image4 = (ImageView) findViewById(R.id.IVimage4); 
     ImageView image5 = (ImageView) findViewById(R.id.IVimage5); 
     ImageView image6 = (ImageView) findViewById(R.id.IVimage6); 
     ImageView image7 = (ImageView) findViewById(R.id.IVimage7); 
     ImageView image8 = (ImageView) findViewById(R.id.IVimage8); 
     ImageView image9 = (ImageView) findViewById(R.id.IVimage9); 
     Button saveImage = (Button) findViewById(R.id.bSaveImage); 

     image1.setOnClickListener(this); 
     image2.setOnClickListener(this); 
     image3.setOnClickListener(this); 
     image4.setOnClickListener(this); 
     image5.setOnClickListener(this); 
     image6.setOnClickListener(this); 
     image7.setOnClickListener(this); 
     image8.setOnClickListener(this); 
     image9.setOnClickListener(this); 
     saveImage.setOnClickListener(this); 
    } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     switch (v.getId()) { 

     case R.id.IVimage1: 
      display.setImageResource(R.drawable.aotl); 
      break; 
     case R.id.IVimage2: 
      display.setImageResource(R.drawable.ball_so_hard); 
      break; 
     case R.id.IVimage3: 
      display.setImageResource(R.drawable.eye); 
      break; 
     case R.id.IVimage4: 
      display.setImageResource(R.drawable.faded); 
      break; 
     case R.id.IVimage5: 
      display.setImageResource(R.drawable.hiii_power); 
      break; 
     case R.id.IVimage6: 
      display.setImageResource(R.drawable.i_invented_swag); 
      break; 
     case R.id.IVimage7: 
      display.setImageResource(R.drawable.lifes_a_bitch); 
      break; 
     case R.id.IVimage8: 
      display.setImageResource(R.drawable.mack_truck); 
      break; 
     case R.id.IVimage9: 
      display.setImageResource(R.drawable.opposite); 
      break; 
     case R.id.bSaveImage: 

      break; 
     } 

    } } 

私は最後のケースの下に何を入れるべきかを知りたい。 もし私がそれを置くべきでないなら、私はどのくらい正確に言えるでしょうか?実際にすべてのものを取って苦しんで任意の助け

おかげで、。

答えて

10

は、ギャラリー内の任意の画像を保存、ギャラリーに画像を保存するためにこれを使用することができますすることができます次のようにしてください:

MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription); 
+0

申し訳ありませんが、本当のアマチュアでありながらまだチュートリアルを進める前に、私が言ったように、これらのどちらを入れるかわからないのです。 – user1619978

+0

これは選択した画像をギャラリーに保存するためのコードです。保存したい場所でこれを使用してください。 – Swayam

+0

「ケースR.id.bSaveImage: \t入力ストリームINPS = getResources()openRawResource(R.drawable.aotl); \tビットマップBMP = BitmapFactory.decodeStream(INPS); \t MediaStore.Images.Media.insertImage(getContentResolver。 ()、bmp、 "Wallpaper1"、 "Description"); \t \t \t break; " 私は正しい線に沿っていますか?私は、SDカード内のディレクトリを一点で指し示さなければならないと推測しましたか? – user1619978

0

onClickのリスナーでは、

FrameLayout mainLayout = (FrameLayout) findViewById(R.id.frame); 
        Random fCount = new Random(); 
        int roll = fCount.nextInt(600) + 1; 
        File file = new File(Environment 
          .getExternalStorageDirectory() 
          + File.separator 
          + "/your_folder_name/" + String.valueOf(roll) + ".png"); 

        Bitmap b = Bitmap.createBitmap(mainLayout.getWidth(), 
          mainLayout.getHeight(), Bitmap.Config.ARGB_8888); 
        Canvas c = new Canvas(b); 
        mainLayout.draw(c); 
        FileOutputStream fos = null; 
        try { 
         fos = new FileOutputStream(file); 
         if (fos != null) { 
          b.compress(Bitmap.CompressFormat.PNG, 90, fos); 
          fos.close(); 
         } 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
+0

申し訳ありませんが、本当に素人ですがまだチュートリアルを進んでいないうちに、私が言ったように、これらのどちらを入れるか分かりません。 – user1619978

0

単純に、画像を渡す機能が必要です。あなたの関数を呼び出し、関数へのビットマップとしてあなたのイメージを渡すあなたのonClickイベントでhow to save image to gallery in android programmatically

private void saveImageToExternalStorage(Bitmap finalBitmap) { 
     String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString(); 
     File myDir = new File(root + "/saved_images_1"); 
     myDir.mkdirs(); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     String fname = "Image-" + n + ".jpg"; 
     File file = new File(myDir, fname); 
     if (file.exists()) 
      file.delete(); 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
      out.flush(); 
      out.close(); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 

全体のコードを参照してください。

switch (v.getId()) { 

     case R.id.IVimage1: 
      saveImageToExternalStorage(img1); 
     break; 

     case R.id.IVimage2: 
      saveImageToExternalStorage(img2); 
     break; 

     case R.id.IVimage3: 
      saveImageToExternalStorage(img3); 
     break; 
} 
関連する問題