안드로이드/CTRL+C -> CTRL+V

else if (id == R.id.nav_gallery) { //36. 갤러리를 불러온다.

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(MediaStore.Images.Media.CONTENT_TYPE); //갤러리를 불러오는 인텐트 만들기

startActivityForResult(intent, GALLERY_CODE);

private static final int GALLERY_CODE = 10; //37. 갤러리 불러올 때, 인텐츠 옆에 요청코드 상수


받을 때는, onActivityResul()를 오버라이딩해서, 요청코드를 if문으로 확인 한 뒤, Intent data를 활용한다.


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { //38. 갤러리에서 선택된 이미지 정보를 액티비티로 받아올 온액티비티리절트 오버라이딩
super.onActivityResult(requestCode, resultCode, data);

if(requestCode == GALLERY_CODE ){

imagePath = getPath(data.getData());
File f = new File( imagePath );
imageView.setImageURI(Uri.fromFile(f));
}
}


정확히는, 갤러리 intent로 띄움 -> onActivityResult()의 intent data로 넘어온 경로를 getData()해도, 정상경로가 아님 -> 

getPath();안에 data.getData()를 집어 넣어서 File객체에 집어 넣을 수 있는 이미지경로를 뽑아주는 매쏘드


public String getPath(Uri uri){ //39. 갤러리에서 인텐트로 받은 이미지의 주소(uri)는 한번에 안받아지므로 따로 정의해주는 매쏘드

String [] proj = {MediaStore.Images.Media.DATA};
CursorLoader cursorLoader = new CursorLoader(this, uri, proj, null, null, null);

Cursor cursor = cursorLoader.loadInBackground();
int index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return cursor.getString(index);

}


1. 토스트메세지


    public void showToast(String message){

        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();

    }


2.  스낵바(프래그먼트용, 액티비티로 쓸려면 context객체만 수정)


    public void showSnack(String message){

        Snackbar snackbar = Snackbar.make( getActivity().findViewById(android.R.id.content) , message, Snackbar.LENGTH_SHORT);

        View snackView = snackbar.getView();

        snackView.setBackgroundColor(Color.parseColor("#FF992629"));


        snackbar.show();

    }

+ Recent posts