簡體   English   中英

如何從字符串實例化Uri?

[英]how to instantiate Uri from a String?

在發送到服務器之前將Uri映像轉換為Base64 String的正確方法是什么?

public void update( final String claimType,  final String Amount, final String Description, final String imageUri)
    {
           class updateImageAndText extends AsyncTask<Void,Void,String>{
              // ProgressDialog loading;
               @Override
               protected void onPreExecute() {
                   super.onPreExecute();
                  // loading = ProgressDialog.show(Edit_Staff.this,"Updating...","Wait...",false,false);
               }

               @Override
               protected void onPostExecute(String s) {
                   super.onPostExecute(s);
                  // loading.dismiss();
                   Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
                   try {
                       Intent returnIntent = new Intent();
                       returnIntent.putExtra("ClaimType", claimType);
                       returnIntent.putExtra("Amount", Amount);
                       returnIntent.putExtra("Description", Description);
                       returnIntent.putExtra("photo", imageUri);
                       setResult(Activity.RESULT_OK, returnIntent);
                       finish();
                   }catch(Exception e)
                   {

                   }
               }

               @Override
               protected String doInBackground(Void... params) {
                   HashMap<String,String> hashMap = new HashMap<>();
                   hashMap.put(Configs.KEY_ID, String.valueOf(ID));
                   Log.e("ID", ID + "");
                   hashMap.put(Configs.KEY_TYPE, claimType);
                   hashMap.put(Configs.KEY_AMOUNT, Amount);
                   hashMap.put(Configs.KEY_DESCRIPTION, Description);
                   if(imageUri != null){
                       Log.d("log", "photo " + imageUri);
                       hashMap.put(Configs.KEY_IMAGE,getStringImage(imageUri)); // error
                   }else{
                       Log.d("log", "photo is null " );
                   }
                   RequestHandler rh = new RequestHandler();
                   String s = rh.sendPostRequest(Configs.URL_UPDATEDE_IMAGE_TEXT,hashMap);
                   return s;
               }
           }

        updateImageAndText ue = new updateImageAndText();
        ue.execute();
    }

 public String getStringImage(Uri imgUri) {

        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imgUri);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] imageBytes = baos.toByteArray();
            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            return encodedImage;
        } catch (Exception e) {
        }

        return "";
    }

錯誤

Error:incompatible types: String cannot be converted to Uri

在更新中,您將imageUri作為字符串傳遞:

public void update( final String claimType,  final String Amount, final String Description, final String imageUri)  

hashMap.put(Configs.KEY_IMAGE,getStringImage(imageUri)); // error because imageUri is a String

但是您的方法期望使用Uri而不是String:

public String getStringImage(Uri imgUri){...}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM