안녕세계

[안드로이드] Custom - Dialog 본문

[안드로이드] Custom - Dialog

Junhong Kim 2017. 8. 2. 14:50
728x90
반응형

안드로이드에서 Custom Dialog를 생성하고 필요한 곳에서 가져오는 방법을 알아보겠습니다.


[Step1] 자신만의 Dialog Layout을 생성해주세요.

[layout/dialog_native_ad.xml]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:gravity="center"
android:padding="10dp"
android:text="앱을 종료할까요?"
android:textColor="@color/white"
android:textStyle="bold" />

<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/dialog_native_ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="280x250"
ads:adUnitId="@string/native_ad_unit_id" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:id="@+id/dialog_button_app_quit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_sub_stroke"
android:gravity="center"
android:padding="10dp"
android:text="종료" />

<TextView
android:id="@+id/dialog_button_app_quit_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_sub_stroke"
android:gravity="center"
android:padding="10dp"
android:text="취소" />
</LinearLayout>
</LinearLayout>


※저는 Native AD와 함께 동작할 Layout을 만들었습니다.

(여러분이 원하는 어떤 모양으로 만드셔도 됩니다)




[Step2] Custom Dialog에 해당하는 Class를 만듭니다.

[java/NativeAdDialog.java]

public class NativeAdDialog extends Dialog {
@BindView(R.id.dialog_button_app_quit) TextView quit;
@BindView(R.id.dialog_button_app_quit_cancel) TextView cancel;
@BindView(R.id.dialog_native_ad) NativeExpressAdView adView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_native_ad);
ButterKnife.bind(this);

AdRequest request = new AdRequest.Builder().build();
adView.loadAd(request);

quit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
android.os.Process.killProcess(android.os.Process.myPid());
}
});

cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
});
}

public NativeAdDialog(Context context) {
super(context);
}
}

View에 자신이 원하는 기능을 추가합니다.

(저는 종료(quit)와 취소(cancel) View에 기능을 추가했습니다.)



[Step3] Custom Dialog를 불러옵니다.

(저는 BackButton을 눌렀을 때 Custom Dialog가 동작되도록 했습니다.)

@Override
public void onBackPressed() {
// AdMob 네이티브 광고
NativeAdDialog dialog = new NativeAdDialog(this);
dialog.show();
}



[Result] 결과 화면


※ 참고

[1] http://kkgram.tistory.com/13

728x90
반응형
Comments