필드 정의부터

private final int SELECT_IMAGE = 1;

private final int SELECT_MOVIE = 2;



이미지 동영상 선택메소드를 각각 만들어중

private void doSelectImage() {

Intent i = new Intent(Intent.ACTION_GET_CONTENT);

i.setType("image/*");

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {

startActivityForResult(i, SELECT_IMAGE);

} catch (android.content.ActivityNotFoundException e) {

e.printStackTrace();

}

}




private void doSelectMovie() {

Intent i = new Intent(Intent.ACTION_GET_CONTENT);

i.setType("video/*");

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {

startActivityForResult(i, SELECT_MOVIE);

} catch (android.content.ActivityNotFoundException e) {

e.printStackTrace();

}

}



선택된 이미지 동영상에대한 정보 출력

@Override

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

super.onActivityResult(requestCode, resultCode, intent);


if (resultCode == RESULT_OK) {

if (requestCode == SELECT_IMAGE) {

Uri uri = intent.getData();

String path = getPath(uri);

String name = getName(uri);

String uriId = getUriId(uri);

Log.e("###",

"실제경로 : " + path + "\n파일명 : " + name + "\nuri : " + uri.toString() + "\nuri id : " + uriId);

} else if (requestCode == SELECT_MOVIE) {

Uri uri = intent.getData();

String path = getPath(uri);

String name = getName(uri);

String uriId = getUriId(uri);

Log.e("###",

"실제경로 : " + path + "\n파일명 : " + name + "\nuri : " + uri.toString() + "\nuri id : " + uriId);

}

}

}







// 실제 경로 찾기

private String getPath(Uri uri) {

String[] projection = { MediaStore.Images.Media.DATA };

Cursor cursor = managedQuery(uri, projection, null, null, null);

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return cursor.getString(column_index);

}


// 파일명 찾기

private String getName(Uri uri) {

String[] projection = { MediaStore.Images.ImageColumns.DISPLAY_NAME };

Cursor cursor = managedQuery(uri, projection, null, null, null);

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.DISPLAY_NAME);

cursor.moveToFirst();

return cursor.getString(column_index);

}


// uri 아이디 찾기

private String getUriId(Uri uri) {

String[] projection = { MediaStore.Images.ImageColumns._ID };

Cursor cursor = managedQuery(uri, projection, null, null, null);

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID);

cursor.moveToFirst();

return cursor.getString(column_index);

}

블로그 이미지

왕왕왕왕

,


비트맵을 바이트로

public byte[] bitmapToByteArray( Bitmap $bitmap ) {  

        ByteArrayOutputStream stream = new ByteArrayOutputStream() ;  

        $bitmap.compress( CompressFormat.JPEG, 100, stream) ;  

        byte[] byteArray = stream.toByteArray() ;  

        return byteArray ;  

    }  



바이트를 비트맵으로

public Bitmap byteArrayToBitmap( byte[] $byteArray ) {  

Bitmap bitmap = BitmapFactory.decodeByteArray( $byteArray, 0, $byteArray.length ) ;  

    return bitmap ;  

}  

블로그 이미지

왕왕왕왕

,


갤러리 리스트뷰 열기


private int REQ_PICK_CODE=100;


onClick에다가 작성


Intent pickerIntent = new Intent(Intent.ACTION_PICK);

pickerIntent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);

pickerIntent.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);


startActivityForResult(pickerIntent, REQ_PICK_CODE);



갤러리 선택한 사진 가져오기


  protected void onActivityResult(int requestCode, int resultCode, Intent data) { 


 if (resultCode == RESULT_OK) { if (requestCode == REQ_PICK_CODE) {


 ImageView im = (ImageView)findViewById(R.id.image); 


 try { 


 Bitmap bm = Images.Media.getBitmap(getContentResolver(), data.getData());

 im.setImageBitmap(bm);


 }

 catch (FileNotFoundException e) {

 // TODO Auto-generated catch block e.printStackTrace(); } 

catch (IOException e) { 

 // TODO Auto-generated catch block e.printStackTrace(); }

 }

 }

 super.onActivityResult(requestCode, resultCode, data);

 };



갤러리가져올경우 스토리지 권한문제로 못가져올수있다.


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

블로그 이미지

왕왕왕왕

,


MainActivity.class

Intent intent = new Intent(MainActivity.this, Aresult.class);

intent.putExtra("file", "abc.png");

startActivityForResult(intent, 1);


1. MainActivity 클래스에서 Aresult 클래스로 file이란 이름으로 abc.png를 넘겨준다.



Aresult.class

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_aresult);

// 현재 활성화된 액티비티를 시작하게 한 인텐트 호출

        Intent intent = getIntent();

    Toast.makeText(getApplicationContext(), intent.getStringExtra("file"),  

         Toast.LENGTH_LONG).show();

        intent.putExtra("re", "return");

        setResult(RESULT_OK,intent);

        finish();

}


1.Aresult클래스에서 file값을 받는다

2.메세지로 받은 파일이름 띄우준다.

3.다시 re란 이름으로 return이란 글자를 리턴해준다.



MainActivity.class

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) // 액티비티가 정상적으로 종료되었을 경우

{

if (requestCode == 1) // requestCode==1 로 호출한 경우에만 처리.

{

edtTest.setText(data.getStringExtra("re"));

}

}

}

1. startActivityForResult(intent, 1); 여기에 1로 호출한 경우만 

2. edtTest에 re이름으로 반환된 데이터를 찍어준다.


안드로이드 딥빡

블로그 이미지

왕왕왕왕

,

public class MyService extends Service{

@Override

public int onStartCommand(Intent intent, int flags, int startId){

// 다른 컴포넌트가 startService()를 호출해서 서비스가 시작되면 이 메소드가 호출됩니다. 만약 연결된 타입의 서비스를 구현한다면 이 메소드는 재정의 할 필요가 없습니다. 

}


@Override

public IBinder onBind(Intent intent){

// 다른 컴포넌트가 bindService()를 호출해서 서비스와 연결을 시도하면 이 메소드가 호출됩니다. 이 메소드에서 IBinder를 반환해서 서비스와 컴포넌트가 통신하는데 사용하는 인터페이스를 제공해야 합니다. 만약 시작 타입의 서비스를 구현한다면 null을 반환하면 됩니다.

}


@Override

public void onCreate(){

// 서비스가 처음으로 생성되면 호출됩니다. 이 메소드 안에서 초기의 설정 작업을 하면되고 서비스가 이미 실행중이면 이 메소드는 호출되지 않습니다.

}


@Override

public void onDestroy(){

// 서비스가 소멸되는 도중에 이 메소드가 호출되며 주로 Thread, Listener, BroadcastReceiver와 같은 자원들을 정리하는데 사용하면 됩니다. TaskKiller에 의해 서비스가 강제종료될 경우에는 이 메소드가 호출되지 않는다는 점 !! ㅜㅜ

}

}

블로그 이미지

왕왕왕왕

,

 

    private boolean isActivityTop(){

    ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

        List<RunningTaskInfo> info;

        info = activityManager.getRunningTasks(1);

        if(info.get(0).topActivity.getClassName().equals(MainActivity.this.getClass().getName())) {

             return true;

        } else {

             return false;

        }

    }



요긴하게쓸거같다

블로그 이미지

왕왕왕왕

,

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

블로그 이미지

왕왕왕왕

,

public class MainActivity extends ActionBarActivity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//Toast.makeText(this, "First Toast", Toast.LENGTH_LONG).show();

}


출력 First Toast



public class MainActivity extends ActionBarActivity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Toast.makeText(this, getString(R.string.toast), Toast.LENGTH_LONG).show();

}


string.xml에 추가 

 <string name="toast">xml Toast</string>


출력 xml Toast

블로그 이미지

왕왕왕왕

,