在上一篇博客中介绍了腾讯云服务器租用、环境部署以及IIS服务器安装和公网访问IIS中存储的图片资源,本篇博客旨在记录Android移动端公网访问云服务器中的图片资源。
1、需求
Android端通过公网加载云服务器中的图片,涉及到Android端设计、本地创建web项目以及将本地web项目部署到腾讯云服务器上。
效果图如下:
2、步骤
2.1、Android端设计
a、界面设计(略)
b、功能实现代码
public class MainActivity extends AppCompatActivity {
ImageView imageView;
private Handler pic_hdl;
Button sendRequest;
EditText imagePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sendRequest = (Button) findViewById(R.id.send_request);
imageView = (ImageView) this.findViewById(R.id.imageView);
imagePath = (EditText) this.findViewById(R.id.imagePath);
sendRequest.setOnClickListener(new ButtonListener());
pic_hdl = new PicHandler();
}
class ButtonListener implements View.OnClickListener {
@Override
public void onClick(View v) {
if (v.getId() == R.id.send_request) {
Thread t = new LoadPicThread();
t.start();
}
}
}
class LoadPicThread extends Thread {
@Override
public void run() {
String picDir = imagePath.getText().toString();//获取网络图片路径
Bitmap img = getUrlImage(picDir);
Message msg = pic_hdl.obtainMessage();
msg.what = 0;
msg.obj = img;
pic_hdl.sendMessage(msg);
}
}
class PicHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Bitmap myimg = (Bitmap) msg.obj;
imageView.setImageBitmap(myimg);
}
}
/**加载图片
* @param url 网络图片路径
* @return Bitmap 位图
* */
public Bitmap getUrlImage(String url) {
Bitmap img = null;
try {
URL picurl = new URL(url);
// 获得连接
HttpURLConnection conn = (HttpURLConnection) picurl.openConnection();
conn.setConnectTimeout(6000);//设置超时
conn.setDoInput(true);
conn.setUseCaches(false);//不缓存
conn.connect();
InputStream is = conn.getInputStream();//获得图片的数据流
img = BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
return img;
}
}
2.2、创建本地web项目
创建本地web项目在javaee环境下进行创建,采用的是eclipse集成开发工具,
a、预先配置本地计算机Tomcat服务器环境,启动Tomcat服务器,
b、创建动态web项目,创建完web项目,将要展示的图片资源拷贝放在“WebContent”文件夹下。然后运行web项目于Tomcat服务器中(“Run on Server”),确保Tomcat服务器已启动。
c、导出web项目为“war”格式。(web项目右键-----Export-----WAR file)
2.3、本地web项目部署到腾讯云服务器上
a、腾讯云服务器配置(注意:腾讯云服务器也要安装jdk和配置环境变量,具体见博客底部参考资料)。
~开放访问端口
(登陆腾讯云服务器,点击安全组选项,注意最上面的项目选择正确,点击安全组选择新建,选择放通全部端口,然后到最下面,点击新建,返回安全组,点击加入实例,勾选响应云主机,然后点击确定。)
~配置腾讯云服务器防火墙
(打开服务器管理器,右上角工具---高级安全windows防火墙,点击Windows防火墙属性,选择公用配置文件,入站链接设置为允许,然后确定,服务器配置完毕.)
b、运行web项目
将本地web项目导出的war文件放入服务器Tomcat的webapps目录下,然后从bin---startup.bat启动Tomcat,先在服务器试试能否成功运行http://localhost:8080/项目名称/图片名称.扩展名,可以的话,不要关闭服务器的Tomcat,回到自己笔记本,在浏览器输入http://服务器公网IP:8080/项目名称/图片名称.扩展名即可访问云服务器web项目或者运行Android上之前创建的app加载网络图片资源。
--------------------------------------------------------------------------------------------------------------------
参考资料:
//eclipse导出项目(war包),部署到tomcat,测试实例
//怎样将本地web项目部署到腾讯云服务器上?
http://product.pconline.com.cn/itbk/software/dnwt/1408/5260596.html#ad=7094?qq-pf-to=pcqq.c2c //JDK怎么安装与配置环境变量