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

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

2014-12-25 17:09 295 查看
本文转载自:http://blog.csdn.net/furongkang/article/details/6820790

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

一.网络图片查看器
清单文件加入网络访问权限:
<!-- 访问internet权限 -->  
<uses-permission android:name="android.permission.INTERNET"/>


界面如下:

1.源代码如下: 图片地址:http://pic.enorth.com.cn/0/09/27/45/9274518_748007.jpg
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(), "error", 1).show();  
                    }                     
                }catch (Exception e) {  
                    Toast.makeText(getApplicationContext(), "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();  
        //设置超时时间5秒  
        conn.setConnectTimeout(5000);  
        conn.setRequestMethod("GET"); 
	//判断是否连接成功,返回结果为200中则成功,失败的话或返回404等 
        if(conn.getResponseCode()==200){  
            InputStream inStream = conn.getInputStream();  
            byte[] data = StreamTool.read(inStream);  
            return data;  
        }  
        return null;  
    }  
}


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 style="font-family:Microsoft YaHei;"><span style="font-size:18px;"><strong><!-- 访问internet权限 -->  
<uses-permission android:name="android.permission.INTERNET"/></strong></span></span>


界面如下:


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


<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>


1.源代码如下:

@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(), "error", 1).show();  
        }  
    }  
});  
  }


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