我想将图像从URL保存到SD卡(以备将来使用),然后从SD卡加载该图像,将其用作Google地图的可绘制叠加层.
这是函数的保存部分:
//SAVE TO FILE
String filepath = Environment.getExternalStorageDirectory().getAbsolutePath();
String extraPath = "/Map-"+RowNumber+"-"+ColNumber+".png";
filepath += extraPath;
FileOutputStream fos = null;
fos = new FileOutputStream(filepath);
bmImg.compress(CompressFormat.PNG, 75, fos);
//LOAD IMAGE FROM FILE
Drawable d = Drawable.createFromPath(filepath);
return d;
Run Code Online (Sandbox Code Playgroud)
图像以succuessfully的形式保存到SD卡,但在到达createFromPath()线路时失败.我不明白为什么它会保存到那个目的地但不加载它....
我在点击按钮时从URL加载图像,并将其存储为位图.现在我想知道如何将下载的图像保存到SD卡以及系统中.
我试图通过以下方式实现:
package com.v3.thread.fetchImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
public class MainThreadActivity extends Activity {
ImageView imView;
EditText ed1;
Bitmap bmImg;
Button bt, btSave;
String imageUrl = "";
int visibilty = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) { …Run Code Online (Sandbox Code Playgroud) 我要救的ImageView,我与展示setImageURI在SDcard我的Android设备中...
我怎样才能做到这一点?
码:
public class MainActivity extends ActionBarActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Image"), 1);
}
});
}
@Override
protected void onActivityResult(int reqCode, int resCode, Intent data) {
if(resCode == RESULT_OK){
if(reqCode == 1)
imageView.setImageURI(data.getData());
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.