Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将图像正确保存到sd卡?_Android_Image_Save_Gallery - Fatal编程技术网

Android 如何将图像正确保存到sd卡?

Android 如何将图像正确保存到sd卡?,android,image,save,gallery,Android,Image,Save,Gallery,我是一个android初学者,对编码知之甚少。我在viewfippler gallery中实现了一个保存按钮,但在saveimage()方法中的这一行“Bitmap Bitmap=getBitmapFromImageView(ImageView ImageView);”上出现了两个错误。编译器说应该有一个“)”并且在上面指定的行上有一个非法的表达式开始。相关代码如下 ViewFlipper.java public class ViewFlipperActivity extends Act

我是一个android初学者,对编码知之甚少。我在viewfippler gallery中实现了一个保存按钮,但在saveimage()方法中的这一行“Bitmap Bitmap=getBitmapFromImageView(ImageView ImageView);”上出现了两个错误。编译器说应该有一个“)”并且在上面指定的行上有一个非法的表达式开始。相关代码如下

ViewFlipper.java

    public class ViewFlipperActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        findViewById(R.id.btnSave).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                saveimage();
            }
        });

       ........

}
    public Bitmap getBitmapFromImageView(ImageView imageView) {
        int viewWidth = imageView.getWidth();
        int viewHeight = imageView.getHeight();
        Bitmap bitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        imageView.layout(0, 0, viewWidth, viewHeight);
        imageView.draw(canvas);
        return bitmap;
    }


    public static void saveimage(){


        Bitmap bitmap = getBitmapFromImageView(ImageView imageView);

        File f =new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/HD GOSPEL LOCKSCREENS");
        if(!f.exists())
        {
            f.mkdirs();
        }
        f = new File(f.getAbsolutePath(),
                String.valueOf(System.currentTimeMillis()) +"hdgospelLockScreen.jpg");
        if(!f.exists())
        {
            try {
                f.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        try {
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(f));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
   .......

}您的语法不正确。更改此行:
Bitmap Bitmap=getBitmapFromImageView(ImageView ImageView)
位图位图=getBitmapFromImageView(imageView)其中imageView是imageView对象

编辑:此外,静态函数saveImage应包含ImageView对象:

public static void saveImage(ImageView imageView) {

您必须首先创建ImageView,或将其传递给静态函数,如我在上面的编辑中所述。我如何将其传递给静态函数?您的方法不一定必须是静态的。好的,我会记住这一点。我已经把saveimage(ImageView)放在屏幕上;在我的save onClick listener中,它仍然给我带来错误您的代码正在使用一些我以前从未使用过的第三方库。我的建议是保持一个恒定的ImageView列表<代码>列表列表;myList.add(礼物);myList.add(besober)int index=flipper.getDisplayedChild()时
,使用该索引获取您的ImageView:
ImageView img=myList.get(索引)。然后,将该img传递到saveImage方法中。