最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現網絡圖片瀏覽功能

 更新時間:2017年06月03日 14:32:19   作者:qq_32303793  
這篇文章主要為大家詳細介紹了Android實現網絡圖片瀏覽功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們在上網的過程中經??吹礁鞣N圖片,那你知道它是如何實現的嗎?接下來就讓我們一塊探討一下。

網絡圖片的瀏覽可以分為倆部分,基本的頁面布局與界面交互,讓我們一步步的來編寫。

基本布局很簡單,只需要有一個輸入圖片鏈接的EditText,一個瀏覽按鈕,一個ImageView就差不多了。下面是簡單代碼。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  tools:context=".MainActivity" >

  <ImageView
    android:id="@+id/iv"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" />

  <EditText
    android:id="@+id/et_path"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="請輸入圖片路徑"
    android:maxLines="1" />

  <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="click"
    android:text="瀏覽" />

</LinearLayout>

值得注意的是這里面的weight不是權重,而是渲染優(yōu)先級,weight越大,優(yōu)先級越低。

最重要的自然是界面交互,輸入圖片的指定地址,便可以將服務器返回的圖片展示在界面上,具體如下

package cn.edu.bzu.imageviewdemo;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {

 protected static final int CHANGE_UI = 1;
 protected static final int ERROR = 2;
 private EditText et_path;
 private ImageView iv;
 private Handler handler = new Handler(){
  public void handleMessage(android.os.Message msg) {
   if(msg.what == CHANGE_UI){
    Bitmap bitmap = (Bitmap) msg.obj;
    iv.setImageBitmap(bitmap);
   }else if(msg.what == ERROR){
    Toast.makeText(MainActivity.this, "顯示圖片錯誤", 0).show();
   }
  };
 };
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  et_path = (EditText) findViewById(R.id.et_path);
  iv = (ImageView) findViewById(R.id.iv);
 }
 public void click(View view) {
  final String path = et_path.getText().toString().trim();
  if (TextUtils.isEmpty(path)) {
   Toast.makeText(this, "圖片路徑不能為空", Toast.LENGTH_SHORT).show();
  } else {
   new Thread() {
    public void run() {

     try {
      URL url = new URL(path);  //創(chuàng)建URL對象

      HttpURLConnection conn = (HttpURLConnection) url
        .openConnection();
      // 設置請求的方式
      conn.setRequestMethod("GET");
      //設置超時時間
      conn.setConnectTimeout(5000);

      int code = conn.getResponseCode();

      if (code == 200) {

       InputStream is = conn.getInputStream();

       Bitmap bitmap = BitmapFactory.decodeStream(is);
       //iv.setImageBitmap(bitmap);

       Message msg = new Message();
       msg.what = CHANGE_UI;
       msg.obj = bitmap;
       handler.sendMessage(msg);
      } else {

       Message msg = new Message();
       msg.what = ERROR;
       handler.sendMessage(msg);
      }
     } catch (Exception e) {
      e.printStackTrace();
      Message msg = new Message();
      msg.what = ERROR;
      handler.sendMessage(msg);
     }
    };
   }.start();
  }
 }

}

核心之處便是通過URL對象獲取HttpURLConnection,獲取服務器返回的輸入流

這便是簡單的測試結果。有問題歡迎評論交流!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android三種雙屏異顯實現方法介紹

    Android三種雙屏異顯實現方法介紹

    現在越來越多的Android設備有多個屏幕,雙屏異顯應用場景最多的應該就是類似于收銀平臺那種設備,在主屏上店員能夠對點商品進行選擇錄入,副屏則是展示給我們的賬單詳情,但是它只通過了一個軟件系統就實現了雙屏異顯這個功能,而Presentation正是這其中的關鍵
    2023-01-01
  • android 仿微信聊天氣泡效果實現思路

    android 仿微信聊天氣泡效果實現思路

    微信聊天窗口的信息效果類似iphone上的短信效果,以氣泡的形式展現,實現這種效果主要用到ListView和BaseAdapter,配合布局以及相關素材,接下來為大家介紹下如何實現
    2013-04-04
  • Android Studio出現Failed to pull selection: open failed: Permission denied的解決思路

    Android Studio出現Failed to pull selection: open failed: Permi

    本篇文章給大家分享了Android Studio中導出數據庫文件的方法以及出現Failed to pull selection: open failed: Permission denied的解決思路,有興趣的學習下。
    2018-05-05
  • Flutter多選按鈕組件Checkbox使用方法詳解

    Flutter多選按鈕組件Checkbox使用方法詳解

    這篇文章主要為大家詳細介紹了Flutter多選按鈕組件Checkbox使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 解析android中系統日期時間的獲取

    解析android中系統日期時間的獲取

    本篇文章是對在android中,如何系統日期時間獲取的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Android?搜索框架使用詳解

    Android?搜索框架使用詳解

    這篇文章主要為大家介紹了Android?搜索框架使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Android小組件添加到主屏幕(手機桌面)的方法實例

    Android小組件添加到主屏幕(手機桌面)的方法實例

    很多在多年前使用過Android手機的朋友,可能對于Android 4.0時代盛行的桌面小組件功能有著很深的印象,下面這篇文章主要給大家介紹了關于Android小組件添加到主屏幕(手機桌面)的相關資料,需要的朋友可以參考下
    2023-06-06
  • Android利用zxing生成二維碼的過程記錄

    Android利用zxing生成二維碼的過程記錄

    Android中二維碼生成的最常用庫就是zxing了,正好目前項目有了生成二維碼的需求,所以下面這篇文章主要給大家介紹了關于Android利用zxing生成二維碼的相關資料,需要的朋友可以參考下
    2021-07-07
  • android讀取掃碼模組數據的方法

    android讀取掃碼模組數據的方法

    這篇文章主要為大家詳細介紹了android讀取掃碼模組數據的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Android HttpClient GET或者POST請求基本使用方法

    Android HttpClient GET或者POST請求基本使用方法

    在Android開發(fā)中我們經常會用到網絡連接功能與服務器進行數據的交互,為此Android的SDK提供了Apache的HttpClient來方便我們使用各種Http服務.這里只介紹如何使用HttpClient發(fā)起GET或者POST請求
    2012-12-12

最新評論

海宁市| 岳阳市| 武胜县| 巴南区| 仁化县| 永兴县| 夹江县| 保山市| 东至县| 苏尼特左旗| 合江县| 龙口市| 邮箱| 岐山县| 长白| 崇义县| 双桥区| 从江县| 鲁甸县| 洞头县| 正定县| 嫩江县| 赤城县| 谢通门县| 灵武市| 鲜城| 徐水县| 南部县| 元江| 堆龙德庆县| 定襄县| 吉木萨尔县| 河池市| 昭通市| 隆化县| 金阳县| 科尔| 台江县| 格尔木市| 上虞市| 西昌市|