我有一個奇怪的問題 - 它發生在xperia(android 4.0.3)上,但不在三星S plus(2.3.6)上。在應用程序中我使用谷歌地圖APIv2與支持庫(在另一個活動中,不知道是否有問題)。Android中的BitmapFactory.decodeFile和ImageView奇怪的事
我想我已經縮小問題:
private Bitmap bitmap;
private String st;
private static final String PHOTO_DIR = "photodir";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
[...]
st = Environment.getExternalStorageDirectory().toString() + "/" + PHOTO_DIR + "/test.jpg";
bitmap = BitmapFactory.decodeFile(st);
ImageView im = (ImageView) findViewById(R.id.imv_Photo);
im.setImageBitmap(bitmap);
[...]
可正常工作。但這:
@Override
public void onClick(View v)
{
try
{
ImageView im = (ImageView) findViewById(R.id.imv_Photo);
String st = Environment.getExternalStorageDirectory().toString() + "/" + PHOTO_DIR + "/test1.jpg";
Bitmap bitmap = BitmapFactory.decodeFile(st);
im.setImageBitmap(bitmap);
}
catch (Exception e)
{
// null
}
}
掛起應用(儘管try/catch塊的!)甚至im.setImageBitmap(位圖)去除。當我註釋掉BitmapFactory.decodeFile問題消失。更糟的是,xperia在插入usb時卸載了sd-card,並且我不知道如何將圖片寫入手機內存,所以我無法檢查日誌(btw:是否有辦法在以後獲取日誌?)
當我從onCreate()中刪除代碼時,onClick()只能執行一次。我試圖在解碼之前設置bitmap = null和setImageBitmap(null),但它沒有幫助。
這對我來說似乎很奇怪,因爲三星對於相同的代碼沒有問題。
有沒有解決辦法,或者我做錯了什麼?
也請看看這個代碼:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html –
你可以請把你的'logCat' –