日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android访问网络系列之--访问图片

發(fā)布時(shí)間:2024/4/17 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android访问网络系列之--访问图片 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天閑著無(wú)聊,順便做了個(gè)android 訪問(wèn)網(wǎng)絡(luò)圖片的demo,希望與大家分享下:

下面是主要代碼:

1.main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/imagepath" /><EditTextandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="http://10.191.92.7:8080/web/xiaoxiao.jpg"android:id="@+id/imagepath"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button"android:id="@+id/button"/><ImageView android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/imageView"/></LinearLayout>

?這里的定義很簡(jiǎn)單:相信大家都可以看懂。

2.MainActivity.java

package ygc.yxb.image;import ygc.yxb.service.ImageService; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast;public class MainActivity extends Activity {private EditText pathText;private ImageView imageView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);//獲得圖片路徑pathText=(EditText) this.findViewById(R.id.imagepath);//獲得要顯示的imageViewimageView=(ImageView) this.findViewById(R.id.imageView);//獲得button按鈕 Button button=(Button) this.findViewById(R.id.button);//注冊(cè)button按鈕的點(diǎn)擊事件button.setOnClickListener(new ButtonClickListener());}private final class ButtonClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {String path=pathText.getText().toString();try {//業(yè)務(wù)邏輯層:ImageService類的getImage方法用以獲取網(wǎng)絡(luò)圖片byte[] data = ImageService.getImage(path);//用字節(jié)數(shù)組所有信息生成位圖對(duì)象Bitmap bitmap =BitmapFactory.decodeByteArray(data, 0, data.length);imageView.setImageBitmap(bitmap);//顯示圖片} catch (Exception e) {e.printStackTrace();Toast.makeText(getApplicationContext(), R.string.error, 1).show();}}} }

3.ImageService.java

package ygc.yxb.service;import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL;import ygc.yxb.utils.StreamTool;public class ImageService {/*** 獲取網(wǎng)絡(luò)圖片的數(shù)據(jù)* @param path 網(wǎng)絡(luò)圖片路徑* @return*/public static byte[] getImage(String path) throws Exception {URL url = new URL(path);HttpURLConnection conn=(HttpURLConnection)url.openConnection(); //基于HTTP協(xié)議的連接對(duì)象conn.setConnectTimeout(5000);//5秒conn.setRequestMethod("GET");//請(qǐng)求方式//判斷請(qǐng)求是否成功if(conn.getResponseCode()==200){//定義輸入流InputStream inStream = conn.getInputStream();return StreamTool.read(inStream);}return null;}}

4.StreamTool.java 輸入流工具類。

package ygc.yxb.utils;import java.io.ByteArrayOutputStream; import java.io.InputStream;public class StreamTool {/*** 讀取流中的數(shù)據(jù)* @param inStream* @return* @throws Exception*/public static byte[] read(InputStream inStream) throws Exception {ByteArrayOutputStream outputStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;//如果字節(jié)流中的數(shù)據(jù)不等于-1,就說(shuō)明一直有,然后循環(huán)讀出while( (len=inStream.read(buffer)) !=-1){//將讀出的數(shù)據(jù)放入內(nèi)存中 outputStream.write(buffer);}inStream.close();return outputStream.toByteArray();}}

5.AndroidManifest.xml 在清單文件配置訪問(wèn)網(wǎng)絡(luò)的權(quán)限。

?<!-- 訪問(wèn)internet權(quán)限 -->
?? <uses-permission android:name="android.permission.INTERNET"/>

?

通過(guò)以上代碼,Android訪問(wèn)網(wǎng)絡(luò)圖片的例子就做完了。

另:這里的訪問(wèn)網(wǎng)絡(luò)很簡(jiǎn)單:就是創(chuàng)建一個(gè)web項(xiàng)目,然后在webroot下面放入一張圖片,然后將項(xiàng)目布置到web容器中,然后訪問(wèn)地址我這里是:http://localhost:8080/web/xiaoxiao.jpg,但Android 訪問(wèn)時(shí),不能直接用localhost,而解決的方法是,用本機(jī)的局域網(wǎng)地址進(jìn)行訪問(wèn),最后我的地址是這樣的:

http://10.191.92.7:8080/web/xiaoxiao.jpg

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiaobing-yang/archive/2012/08/07/2626441.html

總結(jié)

以上是生活随笔為你收集整理的Android访问网络系列之--访问图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。