Notice
Recent Posts
Recent Comments
Link
투케이2K
711. (Android/Java) AlertDialog Custom Height , Width Setting 커스텀 팝업창 사이즈 지정 - Create TextView 본문
Android
711. (Android/Java) AlertDialog Custom Height , Width Setting 커스텀 팝업창 사이즈 지정 - Create TextView
투케이2K 2023. 12. 14. 19:01[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// ---------------------------------------------------------------
// [로직 처리 실시]
// ---------------------------------------------------------------
try {
// [팝업창 생성 실시]
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
// TODO [디스플레이 화면 높이, 너비 구하기]
Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = getResources().getDisplayMetrics().density;
float dpHeight = outMetrics.heightPixels / density; // [디스플레이 화면 높이 : height : dp 단위]
float dpWidth = outMetrics.widthPixels / density; // [디스플레이 화면 너비 : width : dp 단위]
// TODO [UI 생성 실시]
final TextView messageText = new TextView( A_Intro.this );
messageText.setPadding(50,50,50,50); // [패딩 지정]
messageText.setMovementMethod(new ScrollingMovementMethod()); // [스크롤 지정]
messageText.setTextSize(Dimension.DP, 30); // [텍스트 폰트 사이즈]
messageText.setTextColor(Color.BLACK); // [텍스트 색상]
messageText.setGravity(Gravity.CENTER); // [텍스트 정렬 위치]
messageText.setHeight(outMetrics.widthPixels); // [텍스트 높이 지정]
messageText.setWidth(outMetrics.widthPixels); // [텍스트 너비 지정]
messageText.setText("테스트 팝업 입니다."); // [메시지 지정]
// TODO [AlertDialog 팝업창 생성]
AlertDialog.Builder builder = new AlertDialog.Builder(A_Intro.this);
// builder.setIcon(R.drawable.ic_launcher_foreground); // [팝업창 표시 아이콘]
builder.setTitle("알 림"); // [팝업창 타이틀 지정]
//builder.setMessage("테스트 팝업 입니다."); // [팝업창 메시지 지정]
builder.setView(messageText); // [텍스트 뷰 지정]
builder.setCancelable(false); // [외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
builder.setPositiveButton("확 인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// -----------------------------------------
// TODO [확인 버튼 클릭 이벤트 처리]
// -----------------------------------------
}
});
final AlertDialog dialog = builder.create();
dialog.show(); // [팝업창 활성 표시]
// TODO [팝업창 레이아웃 사이즈 변경]
/*
try {
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialog.getWindow();
lp.copyFrom(window.getAttributes());
// [전체 화면 설정]
//lp.width = WindowManager.LayoutParams.MATCH_PARENT;
//lp.height = WindowManager.LayoutParams.MATCH_PARENT;
// [특정 크기 사이즈 지정 : dp 단위]
lp.width = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpWidth, getResources().getDisplayMetrics());
lp.height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpWidth, getResources().getDisplayMetrics());
// [설정 적용]
window.setAttributes(lp);
}
catch (Exception e){}
// */
}
}, 5000);
}
catch (Exception e){
e.printStackTrace();
}
반응형
'Android' 카테고리의 다른 글
Comments