[英]Android, to save into internal Storage
我正在對自己的設備進行測試,但在此行中得到FALSE
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
所以,我的設備中沒有外部存儲,對嗎?如何將圖像保存在內部存儲中? 如果我把這條線...
FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE);
上課完成
public class ImageStorage {
public static String saveFile(Bitmap bitmap, String filename) {
try {
FileOutputStream out = context.openFileOutput(filename, Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static File getImage(String imagename) {
File mediaImage = null;
try {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root);
if (!myDir.exists())
return null;
mediaImage = new File(myDir.getPath() + "/images/"+imagename);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mediaImage;
}
public static boolean checkifImageExists(String imagename)
{
Bitmap b = null ;
File file = ImageStorage.getImage("/"+imagename+".jpg");
String path = file.getAbsolutePath();
if (path != null)
b = BitmapFactory.decodeFile(path);
if(b == null || b.equals(""))
{
return false ;
}
return true ;
}
}
單詞“ context”被標記為“無法解析”。 我已經在這個問題上度過了一個星期,請幫助我
因為默認情況下此類不具有訪問Context
權限,所以您需要在這樣的方法中傳遞它(請參閱我如何添加Context
參數):
public static String saveFile(Context context, Bitmap bitmap, String filename) {}
因此,當您調用它時,您將需要傳遞某種上下文。 如果從Activity
調用它,則可以簡單地使用this
。
public static String saveFile(Bitmap bitmap, String filename) {
try {
FileOutputStream out = context.openFileOutput(filename, Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
您的代碼無法正常工作的原因:無法解決context
。 在代碼中,沒有什么叫做context
。 您必須將其添加為參數(您的Activity
擴展了Context
,因此您可以將其作為參數傳遞,並在Activity
調用它: saveFile(this, mbitmap, mfilename)
public static String saveFile(Context context, Bitmap bitmap, String filename)...
那,或者您必須刪除static
,並使該方法成為Activity
類的成員,然后將context
更改this
(或將其刪除)。 見下文。
public class MyActivity extends Activity {
//your activity members
public String saveFile(Bitmap bitmap, String filename) {
try {
FileOutputStream out = this.openFileOutput(filename, Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
如果從內部AsyncTask
類調用該方法,則調用MyActivity.this.openFileOutput(filename, Context.MODE_PRIVATE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.