Android實現網絡圖片查看器和網頁源碼查看器

本文轉載自: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;  
    }  
} 










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章