Android实现网络图片查看器和网页源码查看器
Android实现网络图片查看器和网页源码查看器
网络图片查看器
清单文加入网络访问权限:
- |<!-- 访问internet权限 -->
- <uses-permission Android:name="android.permission.INTERNET"/>
界面如下:
示例:
- public class MainActivity extends Activity {
- private EditText imagepath;
- private ImageView imageView;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- imagepath = (EditText) this.findViewById(R.id.imagepath);
- imageView = (ImageView) this.findViewById(R.id.imageView);
- Button button = (Button) this.findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- String path = imagepath.getText().toString();
- try{
- byte[] data = ImageService.getImage(path);//获取图片数据
- if(data!=null){
- //构建位图对象
- Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
- imageView.setImageBitmap(bitmap);//显示图片
- }else{
- Toast.makeText(getApplicationContext(), R.string.error, 1).show();
- }
- }catch (Exception e) {
- Toast.makeText(getApplicationContext(), R.string.error, 1).show();
- }
- }
- });
- }
- }
- public class ImageService {
- /**
- * 获取图片
- * @param path 网络图片路径
- * @return 图片的字节数据
- */
- public static byte[] getImage(String path) throws Exception{
- URL url = new URL(path);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- //设置超时时间
- conn.setConnectTimeout(5000);
- conn.setRequestMethod("GET");
- if(conn.getResponseCode()==200){
- InputStream inStream = conn.getInputStream();
- byte[] data = StreamTool.read(inStream);
- return data;
- }
- return null;
- }
- }
- <span style="FONT-WEIGHT: normal">public class StreamTool {
- /**
- * 读取输入流数据
- * @param inStream
- * @return
- */
- public static byte[] read(InputStream inStream) throws Exception{
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = 0;
- while( (len = inStream.read(buffer)) != -1 ){
- outStream.write(buffer, 0, len);
- }
- inStream.close();
- return outStream.toByteArray();
- }
- }
|
评论暂时关闭