마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지뷰에 이미지가안보여요

0 추천

갤러리에서 이미지를 가져와서 이미지뷰에 넣을려고합니다.

그런데 폰에서 다운받거나 캡쳐한것들은 잘되는데 카메라로 직접 찍은 이미지들은 이미지뷰에 안들어가네요..

 다른건다되는데 직접 찍은것들만 안들어갑니다. 차이점은  직접 찍은 것들이 해상도가 4000x2000정도로 큰 편인데 이것때문인지..

또 이상한건 직접찍은 사진을 선택했을때 이미지뷰에 안나타나지만 getDrawingCache같은 걸로 캡쳐를 해보면 그 사진에서는 사진이 보입니다; 이미지가 들어가긴하지만 안보이는것 같습니다.

왜이럴까여.. 소스는 이게 다입니다.

public class MainActivity extends AppCompatActivity {
    ImageView iv;
    RelativeLayout container;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView)findViewById(R.id.imageView3);
        container = (RelativeLayout)findViewById(R.id.layout);
    }
    public void ccc(View v){
        //갤러리
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
        intent.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, 1);

    }
    Bitmap photo;
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == 1) {

            try {
                photo = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
                iv.setImageBitmap(photo);
            } catch (Exception e) {
                e.printStackTrace();
              
            }
        }
    }
    public void click(View v){
        String folder = "Test_Directory"; // 폴더 이름
        try {
            // 현재 날짜로 파일을 저장하기
            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");

            // 년월일시분초
            Date currentTime_1 = new Date();
            String dateString = formatter.format(currentTime_1);
            File sdCardPath = Environment.getExternalStorageDirectory();
            File dirs = new File(Environment.getExternalStorageDirectory(), folder);
            if (!dirs.exists()) { // 원하는 경로에 폴더가 있는지 확인
                dirs.mkdirs(); // Test 폴더 생성

            }
            container.buildDrawingCache();
            Bitmap captureView = container.getDrawingCache();
            FileOutputStream fos;
            String save;
            try {
                save = sdCardPath.getPath() + "/" + folder + "/" + dateString + ".jpg";
                fos = new FileOutputStream(save);
                captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos); // 캡쳐
                sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                        Uri.parse("file://" + Environment.getExternalStorageDirectory())));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }

            Toast.makeText(getApplicationContext(), dateString + ".jpg 저장",

                    Toast.LENGTH_LONG).show();
        } catch (Exception e) {
        }

};
}
익명사용자 님이 2016년 6월 25일 질문

1개의 답변

0 추천
혹시 해결하셨나요???
알파고 (4,320 포인트) 님이 2017년 9월 17일 답변
...