public void dow_imgone(final View view) {
    new AsyncTask<Void, Void, String>() {
        protected String doInBackground(Void... voids) {
            OkHttpClient client = new OkHttpClient();

            EditText editText = findViewById(R.id.edit_text);
            String inputText = editText.getText().toString();

            String url = 'https://app.huashijie.art/api/work/detailV2?visitorId=-1&workId=' + inputText + '&cur_user_id=-1&platform=android&os_version=28&version_code=217&device_brand=vivo&device_model=vivo%20X21&token=&channel=vivo';

            Request request = new Request.Builder()
                    .url(url)
                    .build();

            try {
                Response response = client.newCall(request).execute();
                String responseBody = response.body().string();

                JsonParser parser = new JsonParser();
                JsonObject json = parser.parse(responseBody).getAsJsonObject();

                String imageUrl = json.get('data').getAsJsonObject().get('multiImages').getAsJsonArray().get(0).getAsJsonObject().get('imgPath').getAsString();

                if (imageUrl != null && imageUrl.matches('http://bsyimg\.pandapaint\.net/v2/work_cover/user/[0-9]+/[0-9]+\.jpg')) {
                    downloadImage(imageUrl);
                    return '下载成功';
                } else {
                    return '未能提取到图片地址';
                }

            } catch (IOException e) {
                e.printStackTrace();
                return '下载失败';
            }
        }

        protected void onPostExecute(String result) {
            Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
        }
    }.execute();
}

该代码首先获取 EditText 中的文本内容,并将其拼接到 API URL 中的 workId 参数。然后,使用 OkHttpClient 发送请求,解析响应结果,获取图片地址,并调用 downloadImage 方法下载图片。最后,通过 Toast 显示下载结果。

代码亮点:

  • 使用 AsyncTask 在后台线程中进行网络请求,避免阻塞主线程。
  • 从 EditText 获取用户输入的工作 ID,实现更加灵活的图片下载功能。
  • 使用正则表达式验证图片地址是否符合预期格式。
  • 通过 Toast 显示下载结果,方便用户了解操作结果。

使用说明:

  1. 在布局文件中添加一个 EditText 和一个 Button。
  2. 将 EditText 的 ID 设置为 edit_text
  3. 将 Button 的点击事件绑定到 dow_imgone 方法。
  4. 运行程序,在 EditText 中输入工作 ID,点击 Button 下载图片。

注意:

  • 该代码仅演示了基本功能,需要根据实际情况进行调整。
  • 请确保 downloadImage 方法已经实现,用于下载图片。
  • 请确保应用已获得网络访问权限。
  • 请注意代码中的 URL 地址,确保其指向正确的 API 接口。

代码示例:

public void downloadImage(String imageUrl) {
    // 下载图片代码
}

更多信息:

希望该示例能够帮助您更好地理解如何在 Android 应用中使用 AsyncTask 下载图片并从 EditText 获取工作 ID。如有疑问,请随时提出。


原文地址: https://www.cveoy.top/t/topic/inNV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录