读书人

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

发布时间: 2012-06-28 15:20:03 作者: rapoo

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

?

网络图片查看器

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

  • |<!--?访问internet权限?-->??
  • <uses-permission?android:name="android.permission.INTERNET"/>??

    ?

    界面如下:

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

    示例:

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

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    界面如下:

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

    示例

    ?

  • ??@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;??
  • ????}??
  • }??

    ?

  • 读书人网 >Android

    热点推荐