레이블이 안드로이드인 게시물을 표시합니다. 모든 게시물 표시
레이블이 안드로이드인 게시물을 표시합니다. 모든 게시물 표시

2011년 11월 27일 일요일

안드로이드 화면꺼짐 방지

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

onCreate() 함수에 추가해준다.

2011년 10월 20일 목요일

안드로이드 대화상자 키보드 띄우기

// Builder
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Enter text");
alert.setView(textEdit);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        String text = textEdit.getText().toString();
        finish();
    }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        finish();
    }
});
// Dialog
AlertDialog dialog = alert.create();
dialog.setOnShowListener(new OnShowListener() {

    @Override
    public void onShow(DialogInterface dialog) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(textEdit, InputMethodManager.SHOW_IMPLICIT);
    }
});

dialog.show();

2011년 10월 18일 화요일

안드로이드 실행시 가로세로 전환

실행중에 화면 모드를 전환해 주는 메소드이다..

   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  //가로모드

else setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  //세로모드

[Android] 가로 세로 화면전환시 리로딩방지


AndroidManifest.xml 에 ndroid:configChanges="orientation" 를 넣게되면,
폰을 돌렸을 때 onCreate, onStart 가 아니라 onConfigurationChanged 함수를 탄다.

2011년 9월 22일 목요일

안드로이드 레이아웃 파라미터

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
        params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        view.setLayoutParams(params);

2011년 9월 20일 화요일

안드로이드 기기번호 가져오기

TelephonyManager mgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

String imei = mgr.getDeviceId();

갤탭 갤플 null

퍼미션추가
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

안드로이드 자신의 전화번호 추출


TelephonyManager mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
returnValue = mTelephonyMgr.getLine1Number();


안되면

public static String getPhoneNumber(Context context)
{
        TelephonyManager tMgr =(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); 
        String phone = "";
        try{
        if(tMgr.getLine1Number()!=null){
         phone = tMgr.getLine1Number();
        }
        phone = phone.substring(phone.length()-10,phone.length());
        phone="0"+phone;
        }catch(Exception e){
         e.printStackTrace();
        }
        Log.d("Phone Number ",phone);
        return phone;
}


추가

2011년 8월 17일 수요일

안드로이드 어플등록과정

좋은 사이트가 있어 링크 해둡니다.


http://nagazimayo.blog.me/40132318317

안드로이드 프로가드 업그레이드

프로가드 사용하면 오류가 나서 업그레이드 적용해 보았더니 해결되었네요...


http://sourceforge.net/projects/proguard/files/proguard/

요 사이트레서 프로가드를 다운받으면 됩니다.

안드로이드 키보드 제어

1. 키보드 감추기
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

2. 키보드 보여주기
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);

위 코드로 안보이는 경우 아래코드도 시도해보세요
- imm.showSoftInputFromInputMethod (editText .getApplicationWindowToken(),InputMethodManager.SHOW_FORCED);

onCreate등에서 제대로 동작하지 않는다면
Handler로 post를 해서 위 코드를 실행시켜보세요.

3. 키보드 토글 - 위 두가지 방법으로 안되는 경우 다음과 같은 코드로 동작하는 경우가 있습니다.
imm.toggleSoftInputFromWindow(editText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

4. 액티비티 시작시 자동으로 키보드 보여주기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateVisible" 혹은 "stateAlwaysVisible"삽입

5. 액티비티 시작시 자동으로 키보드 보여주지 않기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateHidden" 혹은 "stateAlwaysHidden" 삽입

6. 에디트 텍스트 선택해도 키보드 안뜨게 하기
EditText xml 속성에서 inputType 을 0으로 주면 안뜹니다

2011년 8월 10일 수요일

안드로이드 언어코드 국가코드

리소스 폴더 관리 할때 쓰이는 언어코드

ISO 639-1 이다

http://ko.wikipedia.org/wiki/ISO_639

이 링크에서 Alpha-2 에 대한 것을 사용하면 된다.

한국어 values 폴더일 경우 values-ko 로 폴더 이름을 지정하고
파일을 만들면 된다.




자바에서 사용하는 국가 코드는

ISO 3166 이다

http://geotags.com/iso3166/countries.html

여기를 참조하면 된다.

2011년 7월 25일 월요일

안드로이드 볼륨키 설정

어플리케이션 실행시  볼륨버튼을 누르게되면 기본적으로 폰은 벨소리 볼륨을 조절하게된다.

onCreate 함수에
setVolumeControlStream(AudioManager.STREAM_MUSIC);

이구문을 추가해 주면 볼륨버튼으로 미디어볼륨을 조절할 수 있다.

2011년 7월 23일 토요일

안드로이드 뒤로가기

안드로이드 어플리케이션에서 뒤로가기 버튼을 누르면
해당엑티비티가 종료된다.
뒤로가기 버튼을 눌렀을시 처리에 대해서 알아보면...

public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub


if(keyCode == KeyEvent.KEYCODE_BACK)
{

      할일을 적어둠

}
return false;

}


public void onBackPressed(){
       이 구문을 사용해도 된다.
}

2011년 7월 20일 수요일

안드로이드 화면전환 막기

개발중인 어플이 가로나 세로 한가지 화면만 지원할때 사용하면된다.
Manifest 파일의 해당 activity 속성에 다음을 추가해준다.
android:screenOrientation="portrait"    //  .화면세로 고정
android:screenOrientation="landscape"  //화면 가로 고정
 
코드상에서 화면 강제 조정도 가능하다
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);   //가로전환
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);      //세로전환
 
위 코드를 onCreate 함수에 추가해 준다면 위의 Manifest 에 추가해 준것과 효과가 같다.
 


안드로이드 어플리케이션 실행중 화면이 회전되면
어플이 초기화되어 돌리던 쓰레드가 뻑나는 경우가 생긴다.

다음은 화면이 회전될때 onDestroy() 와 onCreate() 함수가 호출되는것을 막아주는 코드이다.
 
@Override
         public void onConfigurationChanged(Configuration newConfig) {
                   super.onConfigurationChanged(newConfig);
         }
 
이함수를 오버라이딩하고
android:configChanges="orientation|keyboard"
Manifest 파일의 해당 activity에 추가해준다.
 
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
}
문을 전의 오버라이드 군문에 추가해서 화면전환시 할일을 적어줄수 도 있다.
 
android:screenOrientation = "nosensor"
센서를 막아서 전환을 막는 방법도 있다.   ^^;

2011년 7월 11일 월요일

안드로이드 bitmap 크기조정

public static Bitmap createScaledBitnap(Bitmap src, intdstWidth, int dstHeight, boolean filter)
src 비트맵 소스
dstWidth 가로크기
dstHeight 세로크기
filter 필터 적용여부 확대시 true로 설정하면 비트맵이 선명함을 유지한다 메모리를 많이 차지함

안드로이드 화면의 사이즈 구하기

Display display =((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
   width =display.getWidth();   //화면의 가로 크기
   height=display.getHeight();   //화면의 세로 크기

2011년 7월 10일 일요일

안드로이드 엑티비티에서 전체화면사용

엑티비티 클레스에서 onCreate 함수에 적는다

requestWindowFeature(Window.FEATURE_NO_TITLE);  //타이틀바 사용안하기
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);  //알림창사용않하기

2011년 7월 8일 금요일

어플리케이션 광고 여러개 넣기

다들 광고는 잘 넣고 계시나요.
다 아시는 내용일수도 있지만.. 혹시 모르시는 분을 위해.. 한번 남겨봅니다.


광고 사용법은 광고사마다 다 다릅니다..
하지만 노출률이 떨어지거나, 광고가 없는경우 광고가 안보이게 된다면 정말 낭패죠..

그래서 여러개의 광고사의 광고를 하나씩 번갈아 가면서.. 보여주면 어떨까? 생각이 들었습니다.
대부분 다 비슷하게 하고 계시고요..


간략히 정리하자면 framelayout 에다가 다 집어넣고.. 광고가 올때 맨 앞으로 보여줄 수 있도록 하면 됩니다.


애드몹과 ad@m의 예를 들어보겠습니다.

먼저 하나의 FrameLayout에 광고를 구겨 넣습니다.




<FrameLayout android:layout_width="fill_parent" android:id="@+id/frameLayout1" android:layout_height="50dip" android:layout_gravity="center_horizontal">

<com.google.ads.AdView
android:id="@+id/AdMobView" android:layout_width="fill_parent"
android:layout_height="wrap_content" ads:adUnitId="your_id"
ads:adSize="BANNER" ads:loadAdOnCreate="true" />

<net.daum.mobilead.MobileAdView
android:id="@+id/AdamView"
android:layout_width="320dip"
android:layout_height="50dip"
android:layout_alignParentBottom="true"
android:layout_gravity="center_horizontal"
android:gravity="bottom|center"/>
</FrameLayout>


그리고 activity에서 불러옵니다.

//adam ad
adAm = (MobileAdView) findViewById(R.id.AdamView);
AdConfig.setClientId("your_id");
AdConfig.setAllowUseOfLocation(true);
AdConfig.setTestDevice(null);

//admob
adMob = (AdView) findViewById(R.id.AdMobView);



그리고 리스너에서 광고가 올때 보여주도록 합니다.

//ad@m의 경우
@Override
public void didDownloadAd_AdListener() {
Log.d("adam", "didDownloadAd_AdListener");
//광고오면 앞으로
adAm.bringToFront();
}
@Override
public void failedDownloadAd_AdListener(int arg0, String arg1) {
Log.d("adam", "failedDownloadAd_AdListener");
//안오면 애드몹을 앞으로
adMob.bringToFront();
}




Admob도 리스너가 있죠... 거기에 광고 왔을때 앞으로 가져오도록 해주시면 되겠습니다.

그리고 리스너에서 광고가 올때 보여주도록 합니다.

new AdListener() {
@Override
public void onReceiveAd(Ad arg0) {
// 애드몹 앞으로
adMob.bringToFront();
}
@Override
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
// adam 앞으로
adAm.bringToFront();
}
@Override
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
}
}



모든 광고에 리스너를 다실 필요는 없고.. 메인으로 쓸 광고에만 달아서 컨트롤 잘 하시면 될겁니다.



즐프하세요 ^^;


출처  http://www.androidpub.com/1622452

뭐 실헐해볼만한 가치는 있다.

2011년 7월 7일 목요일

안드로이드 국가별 설정

if(getResources().getConfiguration().locale.getCountry().equals("KR"))
{
// 한국게시물
else
{
//  그외
}

잘활용하면 좋을것 같다.