标签:线程 public ons override arc timeout his actor print
在Tomcat的根目录中放入一张图片...webapps\ROOT\people,jpg,利用手机和服务器交互j获取这个图片,桌面布局就是简单的线性布局,代码:
<TextView
android:textSize="25dp"
android:text="服务器图片的地址:"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_pct"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_pic"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
通过输入服务器地址,点击按钮就可以实现查看Tomcat的图片:
主要代码:
Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
IvPic.setImageBitmap(mBitmap1);
}
};
private void initConnnect() {
new Thread(new Runnable() {
@Override
public void run() {
String url_path = EtPct.getText().toString().trim();
if (TextUtils.isEmpty(url_path)){
Toast.makeText(MainActivity.this, "请输入图片网址", Toast.LENGTH_SHORT).show();
}else{
try {
URL url = new URL(url_path);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
if (urlConnection.getResponseCode()==200) {
InputStream inputStream = urlConnection.getInputStream();
mBitmap1 = BitmapFactory.decodeStream(inputStream);
if (mBitmap1 == null) {
Toast.makeText(MainActivity.this, "图片获取错误", Toast.LENGTH_SHORT).show();
} else {
mHandler.sendEmptyMessage(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
}
点击按钮触发initConnnect()这个方法,由于请求服务器比较耗时,开启子线程进行请求。
最后别忘了加入权限:<uses-permission android:name="android.permission.INTERNET"/>
如果还无法访问,那就是你电脑防火墙开了,把防火墙关了,就可以了。效果图:
注意:IP地址要用电脑IP地址,不能用10.0.2.2.
。这个就可以实现简单访问服务器图片。
如果引用Xutils框架,代码则更加方便:
mBitmapUtils = new BitmapUtils(MainActivity.this);
String url_path = EtPct.getText().toString().trim();
mBitmapUtils.display(IvPic,url_path);
这样就可以实现访问了。
但是引用Xutils需要加入权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
引入这个库就行:
就可以了。是不是还是感觉Xutils比较方便。
标签:线程 public ons override arc timeout his actor print
原文地址:http://www.cnblogs.com/zpfwin/p/7055986.html