我正在尝试将 a 转换Drawable
为 a,bitmap
以便可以将其保存到我的 Android 设备上的外部 SD 卡中。
我正在使用以下内容来获取可绘制图像:
public void setImage(Drawable image) {
ImageView filmCover = (ImageView)findViewById(R.id.filmCover);
filmCover.setImageDrawable(image);
filmCover.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
}
这张Drawable
图片来自另一个班级:
package com.example.devopdracht;
import java.io.InputStream;
import java.net.URL;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.util.Log;
public class PlaatjeLoader extends AsyncTask {
static Datasaver saver = new Datasaver();
private Drawable image;
private Filmpagina main;
public PlaatjeLoader(Filmpagina main) {
this.main = main;
}
@Override
protected Object doInBackground(Object... arg0) {
JSONtester filmjson = new JSONtester();
FilmObject film = filmjson.getFilmObject(saver.getClickedFilm());
String cover = film.getFilmCover();
image = LoadImageFromWebOperations("http://www.stoux.nl/film/covers/" + cover);
return true;
}
@Override
protected void onPostExecute(Object result) {
super.onPostExecute(result);
main.setImage(image);
}
public static Drawable LoadImageFromWebOperations(String url) {
try {
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
} catch (Exception e) {
return null;
}
}
}
我在 Stackoverflow 上发现的一种方法是:
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.something);
MediaStore.Images.Media.insertImage(getContentResolver(), bmp, "testname" , "testdescription");
然而这不起作用,因为我没有调用 aR.drawable.something
而是只是图像,这当然是 a Drawable
。
但是当我使用
Bitmap bmp = BitmapFactory.decodeResource(getResources(), image);
它给出了以下错误:The method decodeResource(Resources, int) in the type BitmapFactory is not applicable for the arguments (Resources,
Drawable)
如何将我从互联网上获得的图像保存到我的画廊中?