Androidstudio專案連線下載網路資源
阿新 • • 發佈:2018-12-13
現如今開發的Android專案基本都需要進行到網路中進行資源瀏覽並下載。已經很少有僅靠單機操作的手機應用APP。本次文章我們主要介紹Android專案中如何進行連線網路操作,並通過一個現實網路圖片的案例進行解釋。
聯網操作主要用到HttpURLConnection操作,注意事項,應為是聯網耗時操作,需要開子執行緒。還有記得新增許可權操作。
1、頁面佈局:(為方便起見我就只用線性佈局了)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 。。。。。。。。。。。。。。。。。。。。。。。。。。。 android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="輸入網址" android:id="@+id/wangzhi"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="dianji" android:text="瀏覽" android:textSize="20sp"/> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/tuxian"/> </LinearLayout>
為了方便起見,我button就直接設定onclick。關於button其他使用方法,可參看文章:
2、新增許可權:
<uses-permission android:name="android.permission.INTERNET"/>
3、主頁面操作:
(1)、設定變數:
private EditText wangzhi; private ImageView tuxian;
(2)、繫結變數:
wangzhi=(EditText)findViewById(R.id.wangzhi); tuxian=(ImageView)findViewById(R.id.tuxian);
(3)、對連線網路邏輯進行實現:(先顯示程式碼,而後進行解釋)
public void dianji(View view) { new Thread(){ @Override public void run() { String path=wangzhi.getText().toString().trim(); try { URL url=new URL(path); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); InputStream in=connection.getInputStream(); final Bitmap bitmap= BitmapFactory.decodeStream(in); runOnUiThread(new Runnable() { @Override public void run() { tuxian.setImageBitmap(bitmap); } }); } catch (Exception e) { e.printStackTrace(); } } }.start(); }
首先因為這是聯網耗時操作,所以需要開通子執行緒Thread();考慮到在子執行緒中是不能對介面UI進行操作,不過谷歌工程師考慮到這一點,設定一個api功能runOnUiThread在這上面就可以進行UI操作,當時其功能實現只是將執行緒之間的資訊傳送機制進行包裝。而後文章我會對執行緒之間的操作進行解釋。
其中HttpURLConnection操作基本成固定格式,也沒多少解釋的,無法就是設定請求型別、響應超時時間、獲取流等,注意如果只是獲取頁面資訊就不需要進行流的轉化,因為本案例涉及到影象的顯示,所以需要用到bitmap點陣圖api功能。使用也挺方便的。裡面有很多類,針對不同的型別。最終效果如圖:
功能請測有效,今天是國慶節第二天,祝各位國慶節快樂。昨天小暉也給自己好好放了個假,看了一天電視劇。。^_^。。沒辦法,外出名額限制,不夠比基層的師兄們好多了,國慶,他們連休息的時間都沒有。沒辦法,雖已不是軍人。辛苦了!敬禮!