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

本文介绍了如何处理后台配置的启动页背景图片。首先,将图片保存至本地,然后在应用启动时读取该图片以显示。通过代码实现详细步骤,包括启动页如何读取本地图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  • 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);
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值