作者loveyoualway (疯子)
看板AndroidDev
标题url转bitmap(以解决,附上解法)
时间Thu Mar 14 15:46:29 2013
public static Bitmap getBitmap(String url) {
Bitmap bm = null;
try {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(new FlushedInputStream(is));
bis.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
Log.e("bitmap", "failed");
} finally {
if (httpclient != null) {
httpclient.close();
}
}
return bm;
}
我传入一个url却一直跑 catch
那个url确定是图片 没问题 是不是连线或那里有问题啊?
似乎是连线的问题 叫做StrictMode 他适用於ANDROID 2.3板以上
加以下规格就可以跑了
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
.build());
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.127.181
1F:→ loveyoualway:已解决,= = 03/14 15:58
2F:→ qrtt1:解决了要写解法啊qq 03/15 10:33
3F:→ loveyoualway:好,但是我不知道为什麽要这样 03/15 15:15
※ 编辑: loveyoualway 来自: 111.243.98.7 (03/15 15:17)
※ 编辑: loveyoualway 来自: 111.243.98.7 (03/15 15:18)
4F:→ qrtt1:要附上原本问题的 log 才有机会对得上问题与解法的关联性 03/16 10:40
5F:推 MetalChao:有解答推, 也推楼上 03/16 14:08
6F:→ tsaiminghan:main thread 不能执行network <=StrictMode 03/16 21:11
7F:→ tsaiminghan:大约是这样的限制 03/16 21:12
8F:推 KeySabre:main thread如果5秒没回应就会ANR, 耗时的东西应该移到ba 03/19 21:59
9F:→ KeySabre:ckgroud thread,例如network, file IO, database... 03/19 21:59
10F:推 KeySabre:背後做完後如果需要更新画面,再利用post给handler或view 03/19 22:01
11F:→ KeySabre:或runOnUi交给main thread 03/19 22:01
12F:→ KeySabre:也可以继承AsyncTask来做 03/19 22:02
13F:推 KeySabre:如果backgroud thread可能使用频繁,可用thread pool, 03/19 22:04
14F:→ KeySabre:或用一个使用HandlerThread's looper的Handler 03/19 22:04