2016-05-22 12 views
0

だから私は、自動的に最初にアプリケーションを開くときにギャラリーを開くコードを書く方法を見つけようとしています。そして、あなたが写真を選択すると、メインアクティビティに表示されます。どうやってするか?別の活動が必要ですか?まずはメインアクティビティビューを開き、ボタンをクリックして何をしたいかを選択できるからです。アクティビティビューを開く代わりにギャラリーを最初に開く方法は?

コードのロード用と写真を示す:

ocamera.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View arg0) { 
      Intent i = new Intent(
        Intent.ACTION_PICK, 
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

      startActivityForResult(i, RESULT_LOAD_IMAGE); 

     } 
    }); 

    if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) 
      == PackageManager.PERMISSION_GRANTED) { 


    } else if (shouldShowRequestPermissionRationale(
      Manifest.permission.READ_EXTERNAL_STORAGE)) { 
     Toast.makeText(this, "Permission is important to be able edit photos.", 
       Toast.LENGTH_SHORT).show(); 
    } 

    requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 
      MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE); 

    // MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE is an 
    // app-defined int constant 

    return; 


} 


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

     ImageView im = (ImageView) findViewById(R.id.myimage); 
     im.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
     BitmapDrawable abmp = (BitmapDrawable) im.getDrawable(); 
     bmp = abmp.getBitmap(); 
     if (picturePath != null && bmp != null) { 
      int height = bmp.getHeight(), width = bmp.getWidth(); 

      if (height > 1280 && width > 960) { 

       Bitmap bmp = BitmapFactory.decodeFile(picturePath); 
       im.setImageBitmap(bmp); 
       im.setVisibility(View.VISIBLE); 

      } else { 

       im.setImageBitmap(bmp); 
       im.setVisibility(View.VISIBLE); 

      } 

     } 


    } 


} 
+0

アクティビティのonCreateメソッド内でメソッドを呼び出すだけではどうですか?メソッドは単にギャラリー – Eenvincible

+0

OMG yasを開く必要があります!あなたに感謝@ Eenvincible – BENZG55

+0

私はそれを受け入れることができるように、おそらく他の人の心はそれが助けを見つけるように答えてみましょう – Eenvincible

答えて

0

あなたがあなたのギャラリーのコードは最初のものとして実行したい場合、あなたは、単にあなたの活動ののonCreate

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

    //you can check permissions here 

    //call the method here with code you use to open gallery 
    pickImageFromGallery(); 
} 

private pickImageFromGallery(){ 
    //your code to open gallery here 
    Intent i = new Intent(
       Intent.ACTION_PICK, 
       android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

    startActivityForResult(i, RESULT_LOAD_IMAGE); 
} 

この内のメソッドを呼び出すことができますあなたのギャラリーが毎回開かれるようにします。オプションでonResume()内のメソッドを呼び出すことができます。コードが実行されることが保証されるからです。

幸運にも、あなたが役に立ったら幸いです。

+0

実際にこれは動作します。ちょうど私がそれがギャラリーを開くための許可を求める写真を選びたいときはいつも、それが私のせいであるかどうかわからない。そして面白い事実は、まずギャラリーを開き、そのときだけ私は許可についてのトーストメッセージを得るということです。次はすべて正常に動作します。 – BENZG55

関連する問題