Splash启动页后台配置图片的处理

来源:互联网 发布:iso软件开发 编辑:程序博客网 时间:2024/05/18 03:17

一个很简单的需求,启动页背景图片是后台配置的,客户端需要做的就是拉取图片使用

  • 1.我的处理是将图片保存到本地,在应用启动时读取图片
  • 2.看代码实现
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)                == PackageManager.PERMISSION_GRANTED) {            downLoadSplashAd();        } else {            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);        }@Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);        if (requestCode == 1) {            if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) ==                    PackageManager.PERMISSION_GRANTED) {                downLoadSplashAd();            }        }    }
public void downLoadSplashAd() {        //启动页广告        String dataString = FSUserConfig.getDataString(mContext, FSUserConfig.JKEY_AD_CONFIG_0001, "");        LogUtils.d("download", "下载图片: " + dataString);        if (dataString.length() > 0) {            try {                JSONArray array = new JSONArray(dataString);                for (int i = 0; i < array.length(); i++) {                    JSONObject object = (JSONObject) array.get(i);                    String image_url = object.getString("image_url");                    saveUrlImg(image_url);                }            } catch (JSONException e) {                e.printStackTrace();            }        }    }
private void saveUrlImg(String image_url) {        new GetImg().execute(image_url);    }
/**     * 将url转换成bitmap异步任务     */    private class GetImg extends AsyncTask<String, Void, Bitmap> {        @Override        protected Bitmap doInBackground(String... strings) {            HttpURLConnection con = null;//访问网络            InputStream is = null;            Bitmap bitmap = null;            try {                URL url = new URL(strings[0]);                con = (HttpURLConnection) url.openConnection();                con.setConnectTimeout(5 * 1000);                con.setReadTimeout(5 * 1000);                /*http 响应吗                 * 200:成功                 * 404:未找到                 * 500:发生错误                 */                if (con.getResponseCode() == 200) {                    is = con.getInputStream();                    bitmap = BitmapFactory.decodeStream(is);                    return bitmap;                }            } catch (Exception e) {                e.printStackTrace();            } finally {                try {                    if (is != null) {                        is.close();                    }                } catch (IOException e) {                    e.printStackTrace();                }                if (con != null) {                    con.disconnect();                }            }            return null;        }        // onPostExecute在UI线程中执行命令        @Override        protected void onPostExecute(Bitmap bitmap) {            super.onPostExecute(bitmap);            String path = Environment.getExternalStorageDirectory().toString() + "/fs_img/chache";            File path1 = new File(path);            if (!path1.exists()) {                path1.mkdirs();            }            //TODO 暂时只考虑保存一张图片            File file = new File(path1, "splash.jpg");            String filePath = file.getAbsolutePath();            saveFileByBitmap(bitmap, filePath);            LogUtils.d("download", "保存路径:" + filePath);        }    }
/**     * 保存图片到本地     *     * @param bitmap     * @param newImagePath     */    private void saveFileByBitmap(Bitmap bitmap, String newImagePath) {        File file = new File(newImagePath);        try {            FileOutputStream out = new FileOutputStream(file);            if (bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out)) {                out.flush();                out.close();                //保存图片路径                FSUserConfig.setData(mContext, GlobalVariables.JKEY_AD_SPLASHIMAG_PATH, newImagePath);            }        } catch (Exception e) {            e.printStackTrace();        }    }
  • 3.启动页读取图片
//显示后台配置启动页广告            String path = FSUserConfig.getDataString(this, GlobalVariables.JKEY_AD_SPLASHIMAG_PATH, "");            if (VsUtil.fileIsExists(path)) {                Bitmap bitmap = BitmapFactory.decodeFile(path);                splash_iamg.setImageBitmap(bitmap);            }
原创粉丝点击