簡體   English   中英

獲取圖像路徑

[英]Get path of image

我有一個要求用戶從圖庫中選擇圖像的應用程序,它將顯示在圖像按鈕中。 如何獲取在imagebutton中找到的圖像的字符串形式的路徑?

請幫忙

public class NewPortal extends Activity implements OnClickListener, android.view.View.OnClickListener

{
    Bitmap bmp;
 public static final int REQUEST_CODE =1;

 @Override
 public void onCreate(Bundle savedInstanceState) 
 {
 super.onCreate(savedInstanceState);

 setContentView(R.layout.portallayout);
 ImageButton btn1 = (ImageButton)findViewById(R.id.imageButton2);
    btn1.setOnClickListener(this);

    Button btn2 = (Button)findViewById(R.id.button2);
    btn2.setOnClickListener(this);
 }

 public void onClick(View v) {

 Toast pieceToast=null;

 EditText eiteText;
switch (v.getId()) {

  case R.id.imageButton2:
   Intent intent = new Intent();
   intent.setType("image/*");
  intent.setAction(Intent.ACTION_GET_CONTENT);
  intent.addCategory(Intent.CATEGORY_OPENABLE);
   startActivityForResult(intent, REQUEST_CODE);
  int RESULT_LOAD_IMAGE = 1;
   break;

  case R.id.button2:

  eiteText=(EditText)findViewById(R.id.editText2);
  String result=eiteText.getText().toString();

  MySQLiteEntity entity = new MySQLiteEntity(1,
            "Random Post title",
            "Image",
            path of image ,
            result);

  MYSQLiteDataSource datasource = new MYSQLiteDataSource(getApplicationContext());
  datasource.createPost(entity);

  break;
 }
 }



    @Override
 public void onClick(DialogInterface dialog, int which) {
  // TODO Auto-generated method stub

 }



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

    if(requestCode == RESULT_CANCELED) return;

    ParcelFileDescriptor fd;
    try {
        fd = getContentResolver().openFileDescriptor(data.getData(), "r");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return;
    }

    Bitmap bmp = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
    ImageButton imgButton = (ImageButton)findViewById(R.id.imageButton2);
    imgButton.setImageBitmap(bmp);
}   
   }

使用此代碼從圖庫中選擇圖像:

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

為了獲得路徑,您可以使用:

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



      if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK &&null != data)
      {
          Uri selectedImage = data.getData(); String[]
      filePathColumn = { MediaStore.Images.Media.DATA };

      Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
      cursor.moveToFirst();

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
      String picturePath = cursor.getString(columnIndex); cursor.close();

      }
 }

其中RESULT_LOAD_IMAGE是全局聲明為0的整數!

並嘗試以下代碼,將SD卡中存儲的文件中的位圖圖像設置為ImageView。

File imgFile = new  File(“/sdcard/Images/test_image.jpg”);
if(imgFile.exists()){

Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);

}

暫無
暫無

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

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