查看: 275|回复: 0

[手机开发] Android 通过网络图片路径查看图片实例详解

发表于 2017-11-10 08:39:27
太阳http代理AD

Android 通过网络图片路径查看图片实例详解

1.在项目清单中添加网络访问权限

  1. <!--访问网络的权限-->
  2. <uses-permission android:name="android.permission.INTERNET"/>
复制代码

2.获取网络图片数据

  1. /**
  2. * 获取网络图片的数据
  3. * @param path 网络图片路径
  4. * @return
  5. * @throws Exception
  6. */
  7. public static byte[] getImage(String path) throws Exception {
  8. URL url=new URL(path);
  9. HttpURLConnection conn=(HttpURLConnection)url.openConnection();//得到基于HTTP协议的连接对象
  10. conn.setConnectTimeout(5000);//设置超时时间
  11. conn.setRequestMethod("GET");//请求方式
  12. if(conn.getResponseCode()==200){//判断是否请求成功
  13. InputStream inputStream=conn.getInputStream();
  14. return read(inputStream);
  15. }
  16. return null;
  17. }
  18. /**
  19. * 读取流中的数据
  20. */
  21. public static byte[] read(InputStream inputStream) throws IOException {
  22. ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
  23. byte[] b=new byte[1024];
  24. int len=0;
  25. while((len=inputStream.read(b))!=-1){
  26. outputStream.write(b);
  27. }
  28. inputStream.close();
  29. return outputStream.toByteArray();
  30. }
复制代码

3.处理查看图片的控制

  1. public class NetimageActivity extends Activity {
  2. private EditText pathText;
  3. private ImageView imageView;
  4. @Override
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. pathText=(EditText)this.findViewById(R.id.imagepath);//图片路径
  9. imageView=(ImageView)this.findViewById(R.id.imageView);//显示图片控件
  10. Button button=(Button)this.findViewById(R.id.button);//查看图片按钮
  11. button.setOnClickListener(new ButtonClickListener());//注册查看图片按钮事件
  12. }
  13. /**
  14. * 处理查看图片按钮事件
  15. */
  16. private final class ButtonClickListener implements View.OnClickListener{
  17. @Override
  18. public void onClick(View v) {
  19. //取得图片路径
  20. String path=pathText.getText().toString();
  21. try {
  22. //获取图片数据
  23. byte[] data=ImageService.getImage(path);
  24. //使用数组的所有数据构建位图对象
  25. Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
  26. imageView.setImageBitmap(bitmap);//显示图片
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. Toast.makeText(getApplicationContext(), R.string.error, 1).show();
  30. }
  31. }
  32. }
  33. }
复制代码

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!



太阳http代理AD
回复

使用道具 举报