2016-05-27 3 views
1

Я делаю приложение для Android, которое может отправить текст и изображение на сервер, а затем другие могут видеть фотографию, но я хочу изменить высоту и ширину фотографии но у меня нет идеи, как его изменить. Если размер должен быть изменен перед отправкой или он должен быть изменен после его получения с сервера. Если у кого-то есть идея изменить его после получения его с сервера, пожалуйста, скажите мне, чтобы опубликовать другой класс тоже. Вот класс, по которому я отправляю данные на сервер. Любая помощь !изменение высоты и ширины изображения - android

package naqibshayea.afghanbazaar; 


public class insert_ads extends AppCompatActivity { 

private String url_insert_Ads , seller1; 

private String[] id; 
private String[] name; 

private EditText title , intro , seller , phone; 

private TextView selected_cat , selected_img_txt; 

private ImageView selected_img; 

private Spinner my_spinner; 

private String[] selected_cat_info = new String[2]; 
ProgressDialog pDialog; 

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_insert_ads); 

    getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar); 
    setSupportActionBar(toolbar); 
    /*----------------------------------------------------------------------------------------*/ 
    selected_cat = (TextView) findViewById(R.id.txt_insert_ads_selected_cat); 
    selected_img_txt = (TextView) findViewById(R.id.insert_ads_selected_img_txt); 
    selected_img = (ImageView) findViewById(R.id.insert_ads_selected_img); 

    title = (EditText) findViewById(R.id.insert_ads_title); 
    intro = (EditText) findViewById(R.id.insert_ads_intro); 
    seller = (EditText) findViewById(R.id.insert_ads_seller); 
    phone = (EditText) findViewById(R.id.insert_ads_phone); 

    my_spinner = (Spinner) findViewById(R.id.insert_ads_spinner); 

    /*----------------------------------------------------------------------------------------*/ 
    Bundle data = getIntent().getExtras(); 

    url_insert_Ads = data.getString("url"); 

    seller1 = data.getString("UNAME"); 

    seller.setText(seller1); 

    id = data.getStringArray("cat_id"); 

    name = data.getStringArray("cat_name"); 

    ArrayList<String> cats = new ArrayList<>(); 

    for (int i = 0; i < id.length ; i++) 
    { 
     cats.add(i , name[i]); 
    } 

    ArrayAdapter<String> adb = new ArrayAdapter<String>(this , android.R.layout.simple_list_item_1 , cats); 

    my_spinner.setAdapter(adb); 

    my_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int position, long _id) { 

      selected_cat_info[0] = id[position]; 
      selected_cat_info[1] = name[position]; 

      selected_cat.setText(name[position]); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 
} 



private int my_requestCode = 1; 
private Bitmap myBitmap; 
private String my_finalImage; 

public void onBtnCameraClick(View v) 
{ 
    if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) 
    { 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

     startActivityForResult(intent, my_requestCode); 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext() , getString(R.string.no_camera_error) ,Toast.LENGTH_LONG).show(); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == my_requestCode && resultCode == RESULT_OK) 
    { 
     Bundle e = data.getExtras(); 

     myBitmap = (Bitmap) e.get("data"); 

     show_captured_image(); 
    } 
    else if (requestCode == My_requestCode_gallery && resultCode == RESULT_OK) 
    { 
     Uri image = data.getData(); 

     show_internal_image(image); 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext() , getString(R.string.get_image_error) ,Toast.LENGTH_LONG).show(); 

    } 
} 

public void show_captured_image() 
{ 
    AlertDialog.Builder imageLoader = new AlertDialog.Builder(this); 

    LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 

    View layout = inflater.inflate(R.layout.full_screen_image , (ViewGroup) findViewById(R.id.full_img_layout_root)); 

    ImageView bigImage = (ImageView) layout.findViewById(R.id.full_img_img); 

    bigImage.setImageBitmap(myBitmap); 

    TextView imageTitle = (TextView) layout.findViewById(R.id.full_image_title); 

    imageTitle.setText(R.string.captured_img_title); 

    imageLoader.setView(layout); 

    imageLoader.setCancelable(false); 

    imageLoader.setPositiveButton(R.string.captured_img_btn_ok, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      selected_img.setImageBitmap(myBitmap); 

      selected_img_txt.setText(R.string.captured_img_is_true); 

      dialog.dismiss(); 
     } 
    }); 

    imageLoader.setNegativeButton(R.string.captured_img_btn_again, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
      onBtnCameraClick(null); 
     } 
    }); 

    imageLoader.setNeutralButton(R.string.btn_Back_to_home, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 

    imageLoader.create(); 

    imageLoader.show(); 
} 

private int My_requestCode_gallery = 2; 

public void onBtnGalleryClick(View v) 
{ 
    Intent i = new Intent(Intent.ACTION_PICK , MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

    startActivityForResult(i, My_requestCode_gallery); 
} 

public void onImageClick(View v) 
{ 
    Intent i = new Intent(Intent.ACTION_PICK, 
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    startActivityForResult(i, My_requestCode_gallery); 
} 


public void show_internal_image(final Uri imageUri) 
{ 
    AlertDialog.Builder imageLoader = new AlertDialog.Builder(this); 

    LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 

    View layout = inflater.inflate(R.layout.full_screen_image , (ViewGroup) findViewById(R.id.full_img_layout_root)); 

    ImageView bigImage = (ImageView) layout.findViewById(R.id.full_img_img); 

    bigImage.setImageURI(imageUri); 

    TextView imageTitle = (TextView) layout.findViewById(R.id.full_image_title); 

    imageTitle.setText(R.string.captured_img_title); 

    imageLoader.setView(layout); 

    imageLoader.setCancelable(false); 

    imageLoader.setPositiveButton(R.string.captured_img_btn_ok, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      selected_img.setImageURI(imageUri); 
      selected_img_txt.setText(R.string.captured_img_is_true); 
      dialog.dismiss(); 
     } 
    }); 

    imageLoader.setNegativeButton(R.string.captured_img_btn_again, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
      onBtnGalleryClick(null); 
     } 
    }); 

    imageLoader.setNeutralButton(R.string.btn_Back_to_home, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 

    imageLoader.create(); 

    imageLoader.show(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_insert_ads, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 

    if (id == R.id.cancel_post) 
    { 
     finish(); 
    } 

    if (id == R.id.share_post) 
    { 
     if (title.getText().length() > 1) 
     { 

      if (intro.getText().length() > 1) 

      { 
       if(seller.getText().length() > 1) 
       { 
        if (phone.getText().length() > 1) 
        { 
         if (selected_cat.getText() != getString(R.string.insert_ads_form_sel_cat_text)){ 

          if (selected_img_txt.getText() != getString(R.string.insert_ads_form_error_sel_cat)){ 

           Bitmap image =((BitmapDrawable) selected_img.getDrawable()).getBitmap(); 

           HashMap<String , String> my_data = new HashMap<>(); 

           my_data.put("title" , title.getText().toString()); 
           my_data.put("intro" , intro.getText().toString()); 
           my_data.put("seller", seller.getText().toString()); 
           my_data.put("phone", phone.getText().toString()); 
           my_data.put("cat", selected_cat_info[0]); 


           UploadImage upload = new UploadImage(my_data , image , this); 

           upload.execute(); 

          } 
          else 
          { 
           Toast.makeText(getApplicationContext() , R.string.insert_ads_form_error_sel_img , Toast.LENGTH_LONG).show(); 
          } 
         } 
         else 
         { 
          Toast.makeText(getApplicationContext() , R.string.insert_ads_form_error_sel_cat , Toast.LENGTH_LONG).show(); 
         } 
        } 
        else 
        { 
         phone.setHint(R.string.insert_ads_form_error_hint); 
        } 

       } 
       else 
       { 
        seller.setHint(R.string.insert_ads_form_error_hint); 
       } 
      } 
      else 
      { 
       intro.setHint(R.string.insert_ads_form_error_hint); 
      } 

     } 
     else 
     { 
      title.setHint(R.string.insert_ads_form_error_hint); 
     } 
    } 
    return super.onOptionsItemSelected(item); 
} 

private class UploadImage extends AsyncTask<Void , Void ,Boolean> 
{ 
    private Context main_con; 

    private HashMap<String , String> main_hm; 
    private Bitmap main_image; 

    public UploadImage(HashMap<String , String> hm , Bitmap image , Context con) 
    { 
     main_hm = hm; 
     main_image = image; 
     main_con = con; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(insert_ads.this); 
     pDialog.setMessage("درحال آماده سازی"); 
     pDialog.setCancelable(false); 
     pDialog.show(); 
    } 
    @Override 
    protected Boolean doInBackground(Void... voids) 
    { 
     ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 

     main_image.compress(Bitmap.CompressFormat.JPEG , 100 , outputStream); 

     String encoded_image = Base64.encodeToString(outputStream.toByteArray() , Base64.DEFAULT); 

     ArrayList<NameValuePair> dataToSend = new ArrayList<>(); 

     dataToSend.add(new BasicNameValuePair("title" , main_hm.get("title"))); 
     dataToSend.add(new BasicNameValuePair("intro" , main_hm.get("intro"))); 
     dataToSend.add(new BasicNameValuePair("seller" , main_hm.get("seller"))); 
     dataToSend.add(new BasicNameValuePair("phone" , main_hm.get("phone"))); 
     dataToSend.add(new BasicNameValuePair("cat" , main_hm.get("cat"))); 
     dataToSend.add(new BasicNameValuePair("image", encoded_image)); 

     HttpParams myHttpParams = new BasicHttpParams(); 

     HttpConnectionParams.setConnectionTimeout(myHttpParams, 1000 * 30); 

     HttpConnectionParams.setSoTimeout(myHttpParams, 1000 * 30); 

     HttpClient client = new DefaultHttpClient(myHttpParams); 

     HttpPost post = new HttpPost(url_insert_Ads); 

     try { 

      post.setEntity(new UrlEncodedFormEntity(dataToSend , "UTF-8")); 

      client.execute(post); 

      return true; 

     } 
     catch (Exception e) 
     { 
      /* 
      * Log.i("MatiMessage" , "error in posting data -> " + e.toString()); 
      */ 
      return false; 
     } 

    } 

    @Override 
    protected void onPostExecute(Boolean result) 
    { 
     pDialog.dismiss(); 
     String message = ""; 

     if(result == true) 
     { 
      message = getString(R.string.result_of_insert_message_success); 
     } 
     else 
     { 
      message = getString(R.string.result_of_insert_message_failure); 
     } 

     AlertDialog.Builder alert = new AlertDialog.Builder(main_con); 
     alert.setCancelable(false); 
     alert.setTitle(R.string.result_of_insert_title); 
     alert.setMessage(message); 
     alert.setPositiveButton(R.string.btn_Back_to_home, 
       new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       } 
     ); 
     alert.create(); 
     alert.show(); 
    } 

} 

} 

ответ

1

После получения растрового изображения измените размер изображения и установите его на изображение.

ImageView iv = (ImageView) findViewById(R.id.imageView); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.picture); 
Bitmap resizedBmp = Bitmap.createScaledBitmap(bitmap, newWidth, newHeight, true); 
iv.setImageBitmap(resizedBmp); 
Смежные вопросы