23_传智播客Android视频教程_网络通信之网络图片查看器
16lz
2021-01-23
布局文件:
<?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" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="网络图片的地址是:\n 这个可以自定在输入框里面输入,但是为了简便,直接使用TextView做了" /> <Button android:id="@+id/Button01" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="得到网络图片" /> <ImageView android:id="@+id/imageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
MainActivity:
public class MainActivity extends Activity {private Button Button01;private ImageView imageView01;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button01 = (Button) findViewById(R.id.Button01);imageView01 = (ImageView) findViewById(R.id.imageView01);Button01.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String path = "http://111.114.116.236:8080/Test/image/Test.jpg";try {byte[] data = ImageService.getImageByByte(path);Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,data.length);imageView01.setImageBitmap(bitmap);} catch (Exception e) {e.printStackTrace();}}});}}
ImageService:
public class ImageService {public static byte[] getImageByByte(String path) throws Exception {ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();URL url = new URL(path);// HttpClientConnection 是对HttpURLConnection的封装,不建议使用/*HttpsURLConnection与HttpURLConnection就是http与https的区别 * */HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();httpURLConnection.setConnectTimeout(5000);httpURLConnection.setRequestMethod("GET");if (httpURLConnection.getResponseCode() == 200) {InputStream inputStream = httpURLConnection.getInputStream();byte[] buffer = new byte[1024];int len = 0;// 读到buffer中间while ((len = inputStream.read(buffer)) != -1) {// 从buffer中读数据byteArrayOutputStream.write(buffer, 0, len);}inputStream.close();}return byteArrayOutputStream.toByteArray();}}
更多相关文章
- android 网络获取图片并存储
- Android中图片的放大和缩小源码
- 实现Android图片圆角
- ANDROID轮播广告图片
- android listview 滚动时异步加载图片的问题
- network: Android 网络判断(wifi、3G与其他)
- Android上SD卡图片的标准缓存方法
- Android实现图片预览浏览功能
- Android连接网络问题