您的位置:首页 > 理论基础 > 计算机网络

Android实现网络图片查看器和网页源码查看器

2014-09-07 01:00 495 查看
转载

1、网络图片查看器

清单文加入网络访问权限:

[html] view
plaincopy

|<!-- 访问internet权限 -->  

<uses-permission android:name="android.permission.INTERNET"/>  

 

界面如下:






示例:

[html] view
plaincopy

<span style="FONT-WEIGHT: normal">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();  

                }  

            }  

        });  

    }  

}</span>  

[html] view
plaincopy

<span style="FONT-WEIGHT: normal">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>  

[html] view
plaincopy

<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();  

    }  

}</span>  

2、网页源码查看器

如果网页的源码超过屏幕的显示位置的话,要求出现滚动条.

[html] view
plaincopy

<ScrollView  

 android:layout_width="wrap_content"   

 android:layout_height="wrap_content"   

>  

  <TextView    

 android:layout_width="fill_parent"   

 android:layout_height="wrap_content"   

 android:id="@+id/htmlsource"  

 />  

</ScrollView>  

界面如下:



示例

[html] view
plaincopy

  @Override  

  public void onCreate(Bundle savedInstanceState) {  

      super.onCreate(savedInstanceState);  

      setContentView(R.layout.main);  

      pathText = (EditText) this.findViewById(R.id.path);  

      htmlsource = (TextView) this.findViewById(R.id.htmlsource);  

        

      Button button = (Button) this.findViewById(R.id.button);  

      button.setOnClickListener(new View.OnClickListener() {  

      

    public void onClick(View v) {  

        String path = pathText.getText().toString();  

        try{  

            //获取源码  

            String html = PageService.getHtml(path);  

            htmlsource.setText(html);  

        }catch (Exception e) {  

            Toast.makeText(getApplicationContext(), R.string.error, 1).show();  

        }  

    }  

});  

  }  

[html] view
plaincopy

public class PageService {  

    /**  

     * 获取网页源代码  

     * @param path 网页路径  

     * @return  

     */  

    public static String getHtml(String path) throws Exception{  

        URL url = new URL(path);  

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();  

        conn.setConnectTimeout(5000);  

        conn.setRequestMethod("GET");  

        if(conn.getResponseCode() == 200){  

            byte[] data = StreamTool.read(conn.getInputStream());  

            return new String(data, "UTF-8");  

        }  

        return null;  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: