Android兑现网络图片查看器和网页源码查看器
Android实现网络图片查看器和网页源码查看器?网络图片查看器清单文加入网络访问权限:|!--?访问internet权
Android实现网络图片查看器和网页源码查看器
?
网络图片查看器
清单文加入网络访问权限:
|<!--?访问internet权限?-->??<uses-permission?android:name="android.permission.INTERNET"/>???
界面如下:

示例:
<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>??<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>??<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>???
网页源码查看器
如果网页的源码超过屏幕的显示位置的话,要求出现滚动条.
?
<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>???
?
?
?
?
?
?
?
?
?
?
界面如下:

示例
?
??@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();??????????}??????}??});????}???
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;??????}??}???