asp网站出现乱码/百度知道问答
BitmapFactory
1,介绍:
从各种来源创建位图对象(包括文件、流和字节数组.)
2,常用方法:
3,图片查看器demo:
【1】布局
【2】代码:
a.获取ID 创建click 利用HttpURLConnection请求网络
b.请求成功获取到的流利用BitmapFactory.decodeStream()转换成bitmap位图
c. 利用handler 进行更新UI
d.添加获取网络权限
<uses-permission android:name="android.permission.INTERNET"/>
package com.ithiema.sourcelook;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.ithiema.imglook.R;public class MainActivity extends Activity {private TextView tv_content;private EditText et_urlpath;private ImageView iv;protected static final int REQUESTSUCESS = 0; //ctrl + shift + X 变大写protected static final int REQUESTFAIL = 1;protected static final int REQUESTEXCEPTION= 2;//定义一个handlerprivate Handler handler = new Handler(){//在这个方法里面处理消息public void handleMessage(android.os.Message msg) {switch (msg.what) {case REQUESTSUCESS://[1]获取我们携带的数据Bitmap bitmap = (Bitmap) msg.obj;//[2]把btimap展示到imagview上iv.setImageBitmap(bitmap);break;case REQUESTFAIL:iv.setImageBitmap(null);Toast.makeText(getApplicationContext(), "图片不存在", 1).show();break;case REQUESTEXCEPTION:iv.setImageBitmap(null);Toast.makeText(getApplicationContext(), "图服务器忙", 1).show();break;} };};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//加载布局setContentView(R.layout.activity_main);// [1]获取我们关心的控件iv = (ImageView) findViewById(R.id.iv);et_urlpath = (EditText) findViewById(R.id.et_urlpath);}// 实现按钮点击事件public void click(View v) {//[0]把耗时的操作放到子线程里面//创建一个子线程new Thread() {public void run() {try {// [1]获取要访问url路径String path = et_urlpath.getText().toString().trim();// [2]创建一个url对象 指定要访问的url路径URL url = new URL(path);// [3]通过url对象获取HttpURLConnection 像服务器发送一个请求HttpURLConnection conn = (HttpURLConnection) url.openConnection();//[4]设置请求的方式conn.setRequestMethod("GET"); //默认是get 注意:get要大写//[5]设置访问的连接时间conn.setConnectTimeout(5000);//[6]获取服务器返回的状态码 int code = conn.getResponseCode();//[7]当状态码是200的时候 代表请求成功 获取服务器返回的数据 数据都是以流的形式返回if(code == 200){InputStream in = conn.getInputStream();//[8]把in转换成bitmapBitmap bitmap = BitmapFactory.decodeStream(in);//[8.1]获取message对象 使用obtain方法避免创建过多的对象Message msg = Message.obtain();msg.obj = bitmap;msg.what = REQUESTSUCESS;handler.sendMessage(msg);//[9]把数据展示到imageview上 位图(bitmap) 和 矢量图 }else {Message msg = Message.obtain();msg.what = REQUESTFAIL;handler.sendMessage(msg);} } catch (Exception e) {e.printStackTrace();Message msg = Message.obtain();msg.what = REQUESTEXCEPTION;handler.sendMessage(msg); }}}.start(); }}