2013-05-30更新
API-14以上因限制主程序禁止存取網路資源,另開Thread即可解決
--------------
參考方式原始出處:http://hi.baidu.com/do_touch/item/024b62daab1e664cdcf9be77
經測試總結如下(API 14以上將異常)
實作所需檔案:
1.src下的Activity之java專案檔
2.layout之XML介面佈局檔
3.Androidmanifest.xml增加存取權限項目
Step01
於layout之XML介面佈局檔建立ImageView之介面元件,刪除預設立之Image之src位置程式碼,僅保留如下 (因此處只能指定R資源檔案)
<ImageView android:id="@+id/im01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" />
Step02
於src下的Activity之java專案檔import 3、4、6~11行套件,新增26~48行~bitmap轉換與處理
import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.Menu; import android.widget.*; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class MainActivity extends Activity { //宣告介面使用物件 String imageUrl01 = "http://pic.wenku8.cn/pictures/1/1192/36761/43256.jpg"; //網路圖片路徑來元存入字串 ImageView im01; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //從R中取得介面元件 im01 = (ImageView)findViewById(R.id.im01); im01.setImageBitmap(returnBitMap((imageUrl01))); } Bitmap returnBitMap(String url) { URL myFileUrl = null; Bitmap bitmap = null; try { myFileUrl = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } try { HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return bitmap; }
Step03
於Androidmanifest.xml增加網路的存取權限
<uses-permission android:name="android.permission.INTERNET" />
全站熱搜