Android 通過網(wǎng)絡圖片路徑查看圖片實例詳解
1.在項目清單中添加網(wǎng)絡訪問權限
<!--訪問網(wǎng)絡的權限--> <uses-permission android:name="android.permission.INTERNET"/>
2.獲取網(wǎng)絡圖片數(shù)據(jù)
/** * 獲取網(wǎng)絡圖片的數(shù)據(jù) * @param path 網(wǎng)絡圖片路徑 * @return * @throws Exception */ public static byte[] getImage(String path) throws Exception { URL url=new URL(path); HttpURLConnection conn=(HttpURLConnection)url.openConnection();//得到基于HTTP協(xié)議的連接對象 conn.setConnectTimeout(5000);//設置超時時間 conn.setRequestMethod("GET");//請求方式 if(conn.getResponseCode()==200){//判斷是否請求成功 InputStream inputStream=conn.getInputStream(); return read(inputStream); } return null; } /** * 讀取流中的數(shù)據(jù) */ public static byte[] read(InputStream inputStream) throws IOException { ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); byte[] b=new byte[1024]; int len=0; while((len=inputStream.read(b))!=-1){ outputStream.write(b); } inputStream.close(); return outputStream.toByteArray(); } 3.處理查看圖片的控制
public class NetimageActivity extends Activity { private EditText pathText; private ImageView imageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); pathText=(EditText)this.findViewById(R.id.imagepath);//圖片路徑 imageView=(ImageView)this.findViewById(R.id.imageView);//顯示圖片控件 Button button=(Button)this.findViewById(R.id.button);//查看圖片按鈕 button.setOnClickListener(new ButtonClickListener());//注冊查看圖片按鈕事件 } /** * 處理查看圖片按鈕事件 */ private final class ButtonClickListener implements View.OnClickListener{ @Override public void onClick(View v) { //取得圖片路徑 String path=pathText.getText().toString(); try { //獲取圖片數(shù)據(jù) byte[] data=ImageService.getImage(path); //使用數(shù)組的所有數(shù)據(jù)構建位圖對象 Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length); imageView.setImageBitmap(bitmap);//顯示圖片 } catch (Exception e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), R.string.error, 1).show(); } } } } 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答