本文实例讲述了android编程实现网络图片查看器和网页源码查看器。分享给大家供大家参考,具体如下:
网络图片查看器
清单文加入网络访问权限:
1
2
|
<!-- 访问internet权限 -->
<uses-permission android:name= "android.permission.internet" />
|
界面如下:
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
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();
}
}
});
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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 ;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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();
}
}
|
网页源码查看器
如果网页的源码超过屏幕的显示位置的话,要求出现滚动条.
1
2
3
4
5
6
7
8
9
10
|
<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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
@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();
}
}
});
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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程序设计有所帮助。