关于启动画面的实现。
- 实现从url读出JSON,并且解析出img的url。
- 获得img的url后,设置imageview
- 关于标题栏的去掉,透明标题栏和imageview全屏
从url读出JSON核心代码
URL url = new URL(path);
String imageurl=null;
String json;
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置连接超时为5秒
conn.setConnectTimeout(5000);
// 设置请求类型为Get类型
conn.setRequestMethod("GET");
// 判断请求Url是否成功
if (conn.getResponseCode() != 200) {
throw new RuntimeException("请求url失败");
}
InputStream inStream = conn.getInputStream();
//以下实现放在另一个方法,具体不赘述
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer1 = new byte[1024];
int len = 0;
while((len = inStream.read(buffer1)) != -1){
outStream.write(buffer1,0,len);
}
inStream.close();
json=outStream.toByteArray();
return json;
解析JSON核心代码
JSONObject jsonObject=new JSONObject(json);//假如json是一个数组,要用JSONArray??
imageurl=jsonObject.getString("img");
用url设置img的思路与核心代码(和获取json的方法有部分相似)
1.用HttpURLConnection获取链接
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
2.获取数据流
InputStream inStream = conn.getInputStream();
3.转换成byte数组(这一段并不懂,作用是从数据流中读取数据)
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();
}
4.用byte创建bitmap
bitmap= BitmapFactory.decodeByteArray(data,0, data.length);
5.用bitmap设置img
imageView.setImageBitmap(bitmap);
去掉标题栏
一般是改变activity引用的主题
在AndroidManifest.xml里面
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
或者在styles.xml里面