启动画面的实现

关于启动画面的实现。
  • 实现从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里面