애드몹 브론즈 뱃지 획득

안녕하세요?

애드몹에서 브론즈 뱃지를 획득했다는 메일이 왔네요.

한동안 일이 바빠서 앱만드는데 신경을 못썼는데 다시금 열심히 만들어 봐야 겠습니다.



화이링~~


Activity를 Dialog로 띄우기 안드로이드개발Tip

AndroidManifest.xml 설정

<activity android:name=".DialogTest"
             android:theme="@android:style/Theme.Dialog">
</activity>

타이틀 영역 없애기

requestWindowFeature(Window.FEATURE_NO_TITLE);

Dialog 배경을 투명하게 처리

protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first){
    super.onApplyThemeResource(theme,resid,first);
    theme.applyStyle(style.Theme_Panel,true);
}


TextView의 maxLines,singleLine, ellipsize 속성 사용하기 안드로이드개발Tip

1) TextView의 maxLines, ellipsize를 이용한 텍스트 제어

TextView를 이용해 텍스트를 처리할 때 일정 글자수만 보여지고 글자 줄임을 하고 싶다면 TextView의 maxLines와 ellipsize를 이용해 지정할 수 있다.(maxLines는 현재 2까지만 지정 가능)

-----------------------------------------------------------------
ellipsize 속성 지정 예)
android:ellipsize="none" 아무 표시 없이 잘라줌
android:ellipsize="start" 앞 부분에 글자 줄임표시(...)
android:ellipsize="end" 뒷 부분에 글자 줄임표시(...)
android:ellipsize="middle" 중간 부분에 글자 줄임표시(...)
android:ellipsize="marquee" 일정 시간을 두고 왼쪽으로 글자가 흘러가게 함
------------------------------------------------------------------

예)

    텍스트 양이 두 줄을 넘어가면 두 줄까지만 표시하고 두 줄 끝 부분에 말줄임표시(...) 처리

    <TextView
        android:id="@+id/style_col4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15dip"
        android:ellipsize="end"
        android:maxLines="2"
        />

       
2. TextView의 singleLine, ellipsize의 marquee를 이용한 흐르는 글자 처리하기

singleLine을 true로 지정하고 ellipsize를 marquee로 지정함으로써 글자수가 많아 한 라인에 다 보여줄 수 없을 때 글자를 흐르게 처리할 수 있음 (marquee는 포커스를 받을 수 있을 때 동작하기 때문에 ListView의 한 라인의 TextView 에서 처리시 잘 동작하지만 포커스를 못 받는 경우는 아래의 java 코드에서 처리하는 것처럼 setSelected(true) 메소드를 이용해 선택된 것으로 처리를 해야 함)

------------------------------------------------
예)

    <TextView
        android:id="@+id/style_col4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15dip"
        android:ellipsize="marquee"
        android:singleLine="true"
        />

------------------------------------------------

java 코드에서 처리하기
TextView detail_title = (TextView)findViewById(R.id.detail_title);
        //휴대폰 넓이 보다 텍스트가 길 경우 마키 처리
        detail_title.setSingleLine(true);
        detail_title.setEllipsize(TruncateAt.MARQUEE);
        //포커스를 받아야 문자가 흐르기 때문에
        //포커스를 받을 수 없는 상황에서는 선택된 것으로 처리하면 마키 동작
        detail_title.setSelected(true);

안드로이드 테마 적용하기(스타일 이용) 안드로이드개발Tip

스타일을 이용해서 안드로이드 테마 적용하기

작업 순서

1) res>values>style.xml 파일 생성
2) 마니페이스 파일에 theme 등록(어플리케이션 전체 반영), Activity에 theme 적용하기(특정 액티비티 반영)

1) style.xml 파일 생성
타이틀바 제거 : <item name="android:windowNoTitle">true</item>
전체화면 : <item name="windowFullscreen">true</item>
아래 스타일은 타이틀바 제거만 사용했음
--------------------------
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <!-- 기본 스타일 지정 -->
  <style name="Theme">
    <item name="android:windowNoTitle">true</item>
  </style>
  <!-- 위에 정의한 기본 스타일을 상속받는 스타일 지정 -->
  <style name="Theme.noTitle" parent="Theme">
      <item name="android:textColor">#01C2FE</item>
      <item name="android:textSize">25sp</item>
  </style>
</resources>
--------------------------

2)
 - 마니페이스 파일에 theme 등록(어플리케이션 전체 반영)

타이틀바가 제거되면서 글자의 크기와 색깔을 표시할 때 테마에 지정된 값이 반영
-------------------------------
<application android:icon="@drawable/icon"
                 android:label="@string/app_name"
                 android:theme="@style/Theme.noTitle"
     >
        <activity android:name=".Test"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
-------------------------------

 - Activity에 theme 적용하기(특정 액티비티에만 반영)

타이틀바가 제거되지 않으며 글자의 크기와 색깔을 표시할 때 테마에 지정된 값만 반영
--------------------------------
public class Test extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.Theme_noTitle);
        setContentView(R.layout.main); 
    }    

--------------------------------

안드로이드 전체화면 만들기(타이틀 제거 및 상태바 제거) 안드로이드개발Tip

1) 클래스 파일에 명시하는 방법

public class Test extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                        WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main); 
    }    
}   

2) 마니페스트 파일에 명시하는 방법

1) 어플리케이션 레벨에서 타이틀 제거 (전체 어플리케이션의 타이틀 제거)

<application android:icon="@drawable/icon"
                  android:label="@string/app_name"
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        <activity android:name=".Test"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>

2) 액티비티 레벨에서 타이틀 제거 (해당 액티비티의 타이틀만 제거)

<application android:icon="@drawable/icon"
                  android:label="@string/app_name">
        <activity android:name=".Test"
                     android:label="@string/app_name"
                 android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>

1 2 3 4 5 6 7 8 9

애드센스(468*60)



애드센스(160*600)