2017-05-13 51 views
-1

ギャラリーから画像を取得しようとしています。ユーザーがギャラリーから画像を選択すると、画像をトリミングする必要があり、クロップされた画像がImageViewに表示されます。ここでギャラリーから画像を選択して切り出し、円形の画像ビューで表示

は、私が試したものです:

ここ
import android.content.Intent; 
import android.database.Cursor; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.net.Uri; 
import android.provider.MediaStore; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.Toast; 

import java.io.FileNotFoundException; 
import java.io.InputStream; 

public class Details extends AppCompatActivity { 
    ImageView i1,i2; 
    int num =2; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_details); 
     android.support.v7.app.ActionBar ab = getSupportActionBar(); 
     if (ab != null) { 
      ab.hide(); 
     } 
     i1 = (ImageView)findViewById(R.id.prof1); 
     i2 = (ImageView)findViewById(R.id.prof2); 
     i1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent img_uopload = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
       img_uopload.putExtra("crop","true"); 
       img_uopload.putExtra("aspectX",1); 
       img_uopload.putExtra("aspectY",1); 
       img_uopload.putExtra("outputX",200); 
       img_uopload.putExtra("outputY",200); 
       img_uopload.putExtra("return-data",true); 
       startActivityForResult(img_uopload,num); 
      } 
     }); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode == num && resultCode == RESULT_OK){ 
      if(data!=null){ 
       Bundle extras = data.getExtras(); 
       if(extras !=null){ 
        Bitmap img = extras.getParcelable("data"); 
        i1.setImageBitmap(img); 
       } 
       else{ 
        Toast.makeText(getApplicationContext(),"Not Read",Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 
    } 
} 

バンドル値はnullを返します。

アンドロイドマニフェストには、含めました。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

UAC:ユーザーがイメージボタンをクリックしたときに

  1. 、ギャラリーは、ユーザーがギャラリーから画像を選択したとき、彼/彼女は、画像に

  2. をトリミングするように依頼する必要があり

  3. を開きますクロップされた画像はImageViewに配置する必要があります

現在、私はGithubライブラリを使用することはできません。画像ユーザーを選択した後

は、このようなとして画像をトリミングする必要があります:

enter image description here

これは私の画面です:

enter image description here

答えて

0

あなたはこの作物意図チェックを使用することができます。

try { 
     String picUri="your irl"; 

     Intent myCropIntent = new Intent("com.android.camera.action.CROP"); 

     myCropIntent.setDataAndType(picUri, "image/*"); 
     myCropIntent.putExtra("crop", "true"); 
     myCropIntent.putExtra("aspectX", 1); 
     myCropIntent.putExtra("aspectY", 1); 
     myCropIntent.putExtra("outputX", 128); 
     myCropIntent.putExtra("outputY", 128); 
     myCropIntent.putExtra("return-data", true); 
     startActivityForResult(myCropIntent, CROP_PIC_REQUEST_CODE); 
    } 

    catch (ActivityNotFoundException e) { 

     String errorMessage = "No Activity found"; 
     Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); 
     toast.show(); 
    } 

は他のあなたも... simple-crop-image-lib

丸いイメージビューは、私はこのために任意の外部ライブラリを使用することはできませんよ、あなたのcode..Currentlyをしようとします。このライブラリRoundedImageView

+0

を使用して、この作物のライブラリを使用することができます私はこのチュートリアルを見てきましたそれは私のために働いていない..あなたは時間がある場合は、ビデオを一度参照してください.. https://www.youtube.com/watch?v=POhbjnqcKXo –

関連する問題