【问题标题】:How to save images from imageView to SD如何将图像从 imageView 保存到 SD
【发布时间】:2014-09-26 16:14:58
【问题描述】:

我将图片从 imageView 保存到 SD。图像被保存。 问题是存在第一张图像,并且再次保存下一张图像以不同的名称保存了第一张图像。 据我了解,需要抓住imageView 的图片加载到playImage 的那一刻。但是怎么做呢? 谢谢。

在imageView中加载图片并保存到sd:

 public class Gallery extends Activity implements OnClickListener {
    String item;

    Button btnsave, btnhome;
    ImageView playImage;

    String fotoname;


        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.gallery);

            btnhome = (Button) findViewById(R.id.btn_home);
            btnhome.setOnClickListener(this);

            btnsave = (Button)findViewById(R.id.btn_save);
            btnsave.setOnClickListener(this);


            playImage = (ImageView)findViewById(R.id.displayImage);


           final ImageView playImage = (ImageView) findViewById(R.id.displayImage);
           final LinearLayout myGallery = (LinearLayout) findViewById(R.id.mygallery1);

            Bundle extras = getIntent().getExtras();
            if(extras !=null) {
                 item = extras.getString("item");
                if(item.equals("Item")){    
            try {   
                String galleryDirectoryName = "ITEM/item";
                String[] listImages = getAssets().list(galleryDirectoryName);
                for (String imageName : listImages) {
                    InputStream is = getAssets().open(galleryDirectoryName + "/" + imageName);
                    final Bitmap bitmap = BitmapFactory.decodeStream(is);
                    ImageView imageView = new ImageView(getApplicationContext());
                    imageView.setLayoutParams(new ViewGroup.LayoutParams(350, 225));
                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    imageView.setImageBitmap(bitmap);
                    imageView.setPadding(10, 70, 10, 70);
                    imageView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            playImage.setImageBitmap(bitmap);
                            playImage.setPadding(5, 0, 5, 0);
                        }
                    });
                    myGallery.addView(imageView);     
                }
            } catch (IOException e) {
                Log.e("GalleryWithHorizontalScrollView", e.getMessage(), e);
            }     

    }
            }

        }

    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.btn_save:
         playImage.setDrawingCacheEnabled(true);
                        Bitmap bitmap = playImage.getDrawingCache();

                        String root = Environment.getExternalStorageDirectory().toString();
                        File newDir = new File(root + "/." + (getString(R.string.app_name)));    
                        newDir.mkdirs();
                        Random gen = new Random();
                        int n = 10000;
                        n = gen.nextInt(n);
                        String fotoname = "photo-"+ n +".jpg";
                        File file = new File (newDir, fotoname);
                        if (file.exists ()) file.delete (); 
                            try {
                               FileOutputStream out = new FileOutputStream(file);
                               bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
                               out.flush();
                               out.close();
                               Toast.makeText(this, (getString(R.string.saved)), Toast.LENGTH_SHORT ).show();

                            } catch (Exception e) {     
                            } 
                             {
                                Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                                File f = new File(newDir, fotoname);
                                Uri contentUri = Uri.fromFile(f);
                                mediaScanIntent.setData(contentUri);
                                this.sendBroadcast(mediaScanIntent);
                            }



        break;
        case R.id.btn_home:

        finish();
    }
    }
    }

【问题讨论】:

    标签: android image memory imageview save


    【解决方案1】:

    检查一下。

    save.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    ll.setDrawingCacheEnabled(true);
                    Bitmap bitmap = ll.getDrawingCache();
                    // bitmap = Bitmap.createBitmap(480, 800,
                    // Bitmap.Config.ARGB_8888);
                    String root = Environment.getExternalStorageDirectory()
                            .toString();
                    File newDir = new File(root + "/Collage_Maker");
                    newDir.mkdirs();
                    Random gen = new Random();
                    int n = 10000;
                    n = gen.nextInt(n);
                    String fotoname = "cm_"+n + ".jpg";
                    File file = new File(newDir, fotoname);
                    String s = file.getAbsolutePath();
                    Log.i("Path of saved image.", s);
                    System.err.print("Path of saved image." + s);
    
                    try {
                        FileOutputStream out = new FileOutputStream(file);
                        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
    
                        out.flush();
                        Toast.makeText(getApplicationContext(), "Photo Saved "+ fotoname,
                                Toast.LENGTH_SHORT).show();
                        out.close();
                    } catch (Exception e) {
    
                        Log.e("Exception", e.toString());
                    }
                }
    
            });
    

    【讨论】:

    • 没有帮助。也许你不明白。我带来了完整的代码。请再看一遍好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    相关资源
    最近更新 更多