通用图像加载器:将当前图像保存到SD卡?

时间:2014-02-15 23:14:41

标签: android image save android-viewpager

我正在使用通用图像加载程序库。我有一个viewpager图像库,我希望能够将当前正在查看的图像保存到SD卡。下面是我实现的按钮,但它不起作用。请帮助!!

private ViewPager gallery;

public class ImageGalleryActivity extends BaseActivity {
final String[] imageUrls = bundle.getStringArray(Extra.IMAGES);
.....
  findViewById(R.id.btnSave).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                int index = gallery.getCurrentItem();
                ImageView img = imageUrls.get(index);
                saveimage(img);

                Toast.makeText(ImageGalleryActivity.this, "Image Successfully Saved", Toast.LENGTH_LONG).show();
                sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://Pictures"
                        + Environment.getExternalStorageDirectory())));
            }
        });


...

}

3 个答案:

答案 0 :(得分:0)

确保在应用清单中添加了相应的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

答案 1 :(得分:0)

Bundle通常用于在各种android活动之间传递数据。这取决于您想要传递的值的类型,但bundle可以包含所有类型的值并传递给新活动。

您可以像这样使用它,

Intent intent = new Intent(getApplicationContext(),ActivityName.class);
intent.putExtra("myKey",AnyValue);  
startActivity(intent);

现在您可以通过...获取传递的值

Bundle extras = intent.getExtras(); 
String tmp = extras.getString("myKey");

之后的onCreate方法中有下面的行
public class MyActivity extends Activity
{
    private static String imageURL;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageUrls = bundle.getStringArray(Extra.IMAGES);
    }}

答案 2 :(得分:0)

我最好的解决方案是不要通过bundle将任何东西传递给另一个活动。 而是使用这个类,

public class MyGetSetMethod()
{
    String[] imageURLS;

    public void setImageURLS (String[] imageUrls) 
    {
        this.imageURLS = imageUrls;
    }

    public String[] getImageURLS() 
    {
        return imageURLS;
    } 
}

现在在你的ImagePagerActivity上,

MyGetSetMethod.setImageURLS(imageURLS);

在ImageGalleryActivity上,

String[] ImageURLS = MyGetSetMethod.getImageUrls();

应该这样做。