0

ここで Android アプリケーションで ImageView を使用しています。Web サービスからの画像を表示するので、UrlImageViewHelper を使用しています。この画像を A​​ndroid ギャラリー ファイルに保存したいと考えています。

私の画像のような:

    String Images = dataExtra.get("images").toString();
    System.out.println("image URL"+Images);     
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    File f = new File(Images);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    this.sendBroadcast(mediaScanIntent);

私はこのように試しました..しかし、うまくいきません。これらの画像を A​​ndroid ギャラリーに保存する方法を教えてください。

4

2 に答える 2

1

私はこの問題の解決策を得ました、ここに私の答えがあります

private void saveImagesIntoGallery(){
        BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
        Bitmap bitmap = drawable.getBitmap();
       // File sdCardDirectory = Environment.getExternalStorageDirectory();// its stores under sdcard not in a specific path
        String sdCardDirectory = Environment.getExternalStorageDirectory().toString()+"/Pictures/";
        String url = arrayForImages[i].toString();
        String file = url.substring(url.lastIndexOf('/')+1);
        System.out.println("PATH NAME"+sdCardDirectory);
        File image = new File(sdCardDirectory, file);
        boolean success = false;

        // Encode the file as a PNG image.
        FileOutputStream outStream;
        try {

            outStream = new FileOutputStream(image);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
            /* 100 to keep full quality of the image */
            outStream.flush();
            outStream.close();
            success = true;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (success) {
            Toast.makeText(getApplicationContext(), "Image saved with success",
                    Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(),
                    "Error during image saving", Toast.LENGTH_LONG).show();
        }
    }
于 2013-01-31T10:57:45.553 に答える
0

ギャラリーが Web サービスのイメージを保存するのに最適な場所であると確信していますか?

内部ストレージに保存する場合:

public void saveBitmap(String name, Bitmap bitmap){

        if(bitmap!=null && name!=null){
            FileOutputStream fos;

            if(bitmap!=null){
                try {
                    fos = openFileOutput(name, Context.MODE_PRIVATE);
                    bitmap.compress(CompressFormat.JPEG, 90, fos);
                } catch (FileNotFoundException e) {}
            }
        }
    }

ギャラリーへ、ここには例がありません。しかし、少し検索してください;)

于 2013-01-30T13:54:55.190 に答える