메뉴 건너뛰기

조회 수 666 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. /res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/ic_launcher" />

</android.support.constraint.ConstraintLayout>

▼ 갤러리에서 가져온 사진을 표현하기 위해 ImageView 위젯 하나를 배치하였습니다. 해당 예제에서는 화면에 배치되어 있는 ImageView를 클릭하였을 때 Gallery Activity릃 실행한 뒤 사진을 선택하고 예제 앱 액티비티로 돌아왔을 때 ImageView에 해당 사진을 표현하도록 하겠습니다. 


2. MainActivity.java

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CODE = 0;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = findViewById(R.id.image);

        imageView.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if(requestCode == REQUEST_CODE)
        {
            if(resultCode == RESULT_OK)
            {
                try{
                    InputStream in = getContentResolver().openInputStream(data.getData());

                    Bitmap img = BitmapFactory.decodeStream(in);
                    in.close();

                    imageView.setImageBitmap(img);
                }catch(Exception e)
                {

                }
            }
            else if(resultCode == RESULT_CANCELED)
            {
                Toast.makeText(this, "사진 선택 취소", Toast.LENGTH_LONG).show();
            }
        }
    }
}

▼ onCreate() 함수에서는 imageView가 클릭되었을 때 동작 처리를 위한 Click Listener를 생성한 뒤 setOnClickListener() 함수를 통해 생성된 리스너를 등록합니다. onClick() 함수에서는 Intent 객체를 생성하고 갤러리 액티비티 실행하기 위한 정보를 Setting합니다. 갤러리 액티비티로부터 가져온 결과 데이터를 처리하기 위해  StartActivityForResult() 함수를 통해 액티비티를 실행해줍니다. 

 

▼ 갤러리 액티비티로부터 결과 데이터를 처리하기 위해서는 onActivityResult() 함수를 오버라이딩합니다. 해당 함수의 인자는 3개입니다. 첫 번째 인자 RequestCode는 StartActivityForResult() 함수의 두 번째 인자로 넘겨줬던 값과 동일한 값이 넘어옵니다. 두 번째 인자는 resultCode로 사진을 정상적으로 선택하였다면 RESULT_OK 값이 넘어오며 뒤로가기 버튼으로 작업을 취소한 경우 RESULT_CANCELED 값이 넘어옵니다. 해당 코드값을 확인하여 액티비티에서 적절한 처리를 해주면됩니다. 마지막 세 번째 인자로 갤러리 액티비티로부터 넘어온 결과 데이터가 담겨있는 Intent 객체입니다.

 

List of Articles
번호 제목 날짜 조회 수
77 인텐트를 이용한 Activity간 데이터 전달 (사용자 정의 클래스) file 2015.07.16 7062
76 서비스가 실행중인지 알아보는 방법 2015.07.16 6553
75 안드로이드 android 개발 와이파이 유지 관련 2015.07.16 7034
74 Android Login and Registration with PHP, MySQL and SQLite file 2015.07.16 14179
73 이미지 버튼 설정 2015.07.16 6378
72 ListView 사용시 특정 뷰로 생성 ( 그림 + 텍스트 ) file 2015.07.16 7478
71 월별 캘린더에 일정 입력 및 조회 기능 리스트로 추가하기 file 2015.07.16 18552
70 서버에서 이미지 불러와서 이미지뷰에 띄우기 file 2015.07.16 9842
69 안드로이드에서 JSP 를 사용하여 mysql 연동하기 2015.07.16 11688
68 안드로이드와 mysql 연동시키기. php 와 json 사용 file 2015.07.16 24494
67 [DB]Android - DB 연동 기술 정리 2015.07.13 13798
66 [DB] 서버/클라이언트 소켓 통신하기 2015.07.13 20567
65 Android 간단한 회원 가입 폼 만들기 for Mac (PHPMyAdmin 이용) file 2015.07.10 10511
64 안드로이드 스튜디오 - rendering problem 해결법 file 2015.07.10 7661
63 안드로이드 스튜디오 자동 임포트 하기 file 2015.07.09 7107
62 안드로이드 스튜디오 - 줄번호 표시하기 1 file 2015.07.03 7759
61 [안드로이드스튜디오] 단축키 2015.07.02 7160
60 다운로드 매니저(DownloadManager)에 대해 알아보자 file 2015.07.01 9246
59 문자를 음성으로 변환(TTS)에 대해 알아보자 file 2015.07.01 7768
58 블루투스(Bluetooth) 통신에 대해 알아보자 file 2015.07.01 7983
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved