2014-01-10 4 views
0

У меня есть приложение, предлагающее пользователю выбрать изображение из галереи, и оно будет отображаться в кнопке с изображением. Как я могу получить путь к изображению, найденному в кнопке с изображением в виде строки?Получить ссылку на изображение

пожалуйста, помогите

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); 
} 
    } 

ответ

1

Используй этот код для выбора изображения из галереи:

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 глобально!

И попробуйте приведенный ниже код, чтобы установить растровое изображение в ImageView из файла, хранящегося на SD-карте.

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); 

} 
Смежные вопросы