如何从图库中删除图像?

时间:2012-12-18 10:05:23

标签: android

这是我在两个文件夹mySDcard文件夹" myfolder23"中保存捕获图像时的源代码。还有移动默认图库我怎么能只保存在Sdcard文件夹" myfolder"不在移动默认文件夹中?或者如何从移动图库中删除只在SD卡中保存一份图像" myfolder23"任何想法???

import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
import android.widget.Toast;

   public class AddEditCountry extends Activity {

 private long rowID; 
 private EditText nameEt;
 private EditText capEt;
 private EditText codeEt;

 private EditText Donedate;
 private EditText Notes;
 private EditText Person;
 private  ImageView imageView1;
public  static Bitmap yourSelectedImage = null;
public static byte[] blob = null;



   private final int CAMERA_PICTURE = 1;
   private final int GALLERY_PICTURE = 2;
   private Intent pictureActionIntent = null;
   public final String SDCARD_ROOT_PATH =    
 Environment.getExternalStorageDirectory().getAbsolutePath();
public final String SAVE_PATH_IN_SDCARD = "/myFolder23/"; 
public final String IMAGE_CAPTURE_NAME    
 ="imgtemp"+System.currentTimeMillis()+".jpeg"; 

//public static        byte[] blob = new byte[2048];






   @Override
   public void onCreate(Bundle savedInstanceState) 
   {
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.add_country);

      nameEt = (EditText) findViewById(R.id.Address);
      capEt = (EditText) findViewById(R.id.Stage);
      codeEt = (EditText) findViewById(R.id.Dueby);

      Donedate = (EditText) findViewById(R.id.Donedate);

      Notes = (EditText) findViewById(R.id.Notes);
      Person = (EditText) findViewById(R.id.Person);

      imageView1 = (ImageView) findViewById(R.id.imageView1);
      Button Browse = (Button) findViewById(R.id.Browse);






      Browse.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {               
        //      Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        //      intent.setType("image/*");
         //     startActivityForResult(intent, 0);

                startDialog();
            }
        });        






      Bundle extras = getIntent().getExtras(); 

      if (extras != null)
      {
         rowID = extras.getLong("row_id");
         nameEt.setText(extras.getString("name"));  
         capEt.setText(extras.getString("cap"));  
         codeEt.setText(extras.getString("code"));  
         Donedate.setText(extras.getString("Location"));  
         Notes.setText(extras.getString("Notes")); 
         Person.setText(extras.getString("Person")); 



      }


      Button saveButton =(Button) findViewById(R.id.saveBtn);
      saveButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) 
          {
             if (nameEt.getText().length() != 0)
             {
                AsyncTask<Object, Object, Object> saveContactTask = 
                   new AsyncTask<Object, Object, Object>() 
                   {
                      @Override
                      protected Object doInBackground(Object... params) 
                      {
                         saveContact();
                         return null;
                      }

                      @Override
                      protected void onPostExecute(Object result) 
                      {
                         finish();
                      }
                   }; 

                saveContactTask.execute((Object[]) null); 
             }

             else
             {
                AlertDialog.Builder alert = new 
     AlertDialog.Builder(AddEditCountry.this);
                alert.setTitle(R.string.errorTitle); 
                alert.setMessage(R.string.errorMessage);
                alert.setPositiveButton(R.string.errorButton, null); 
                alert.show();
             }
          } 
     });
   }



   private void saveContact() 
   {



       ByteArrayOutputStream outStr = new ByteArrayOutputStream();
       yourSelectedImage.compress(CompressFormat.JPEG, 100, outStr);
        blob = outStr.toByteArray();



      DatabaseConnector dbConnector = new DatabaseConnector(this);

      if (getIntent().getExtras() == null)
      {
          dbConnector.insertContact(nameEt.getText().toString(),
                  capEt.getText().toString(),
                  codeEt.getText().toString(),
                  Donedate.getText().toString(),
                  Notes.getText().toString(),
                  Person.getText().toString()
                  ,blob




                  );
      }
      else
      {
         dbConnector.updateContact(rowID,
            nameEt.getText().toString(),
            capEt.getText().toString(), 
            codeEt.getText().toString(), 
            Donedate.getText().toString(),
         Notes.getText().toString(),
          Person.getText().toString()
          , blob


         );
      }
   }




   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent  
 imageReturnedIntent) {
       super.onActivityResult(requestCode, resultCode, imageReturnedIntent);



       if (requestCode == GALLERY_PICTURE) {
            Uri uri = imageReturnedIntent.getData();
            if (uri != null) {
                // User had pick an image.
                Cursor cursor = getContentResolver().query(uri, new String[] 
  {  android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
                cursor.moveToFirst();
                final String imageFilePath = cursor.getString(0);
                File photos = new File(imageFilePath);
                yourSelectedImage = decodeFile(photos);
                yourSelectedImage = 
   Bitmap.createScaledBitmap(yourSelectedImage, 150, 150, true);
                imageView1.setImageBitmap(yourSelectedImage);
                cursor.close();
            }
            else {
                Toast toast = Toast.makeText(this, "No Image is selected.", Toast.LENGTH_LONG);
                toast.show();
            }
        }
        else if (requestCode == CAMERA_PICTURE) {
            if (imageReturnedIntent.getExtras() != null) {
                // here is the image from camera
                yourSelectedImage = (Bitmap) 
   imageReturnedIntent.getExtras().get("data");
                imageView1.setImageBitmap(yourSelectedImage);
            }
        }




    }


   private Bitmap decodeFile(File f) {
        try {
            // decode image size
            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
            BitmapFactory.decodeStream(new FileInputStream(f), null, o);

            // Find the correct scale value. It should be the power of 2.
            final int REQUIRED_SIZE = 70;
            int width_tmp = o.outWidth, height_tmp = o.outHeight;
            int scale = 1;
            while (true) {
                if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < 
 REQUIRED_SIZE)
                    break;
                width_tmp /= 2;
                height_tmp /= 2;
                scale++;
            }

            // decode with inSampleSize
            BitmapFactory.Options o2 = new BitmapFactory.Options();
            o2.inSampleSize = scale;
            return BitmapFactory.decodeStream(new FileInputStream(f), null, 
  o2);
        }
        catch (FileNotFoundException e) {
        }
        return null;
    }

    private void startDialog() {
        AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(this);
        myAlertDialog.setTitle("Upload Pictures Option");
        myAlertDialog.setMessage("How do you want to set your picture?");

        myAlertDialog.setPositiveButton("Gallery", new 
 DialogInterface.OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                pictureActionIntent = new Intent(Intent.ACTION_GET_CONTENT, 
  null);
                pictureActionIntent.setType("image/*");
                pictureActionIntent.putExtra("return-data", true);
                startActivityForResult(pictureActionIntent, GALLERY_PICTURE);
            }
        });

        myAlertDialog.setNegativeButton("Camera", new 
    DialogInterface.OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                pictureActionIntent = new    
 Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);











                File dir = new File(Environment.getExternalStorageDirectory() 
   + "/myFolder23");
                if(dir.exists() && dir.isDirectory()) {
                  // do something here
                 }
                else{
                    //create dir here
                    dir.mkdir(); 
                   }
                 Intent pictureActionIntent = new 
  Intent(MediaStore.ACTION_IMAGE_CAPTURE);  


                 pictureActionIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
  Uri.fromFile(new
                         File(SDCARD_ROOT_PATH + 
  SAVE_PATH_IN_SDCARD,IMAGE_CAPTURE_NAME)));  




                  startActivityForResult(pictureActionIntent,CAMERA_PICTURE);  




            }
        });
        myAlertDialog.show();
    }


}

0 个答案:

没有答案