728x90
PopupWindow는 사용자 인터페이스(UI)에서 추가적인 정보를 제공하거나 사용자의 상호작용을 유도할 때 사용합니다.
PopupWindow를 사용하는 이유
- 간편한 정보 제공:
- PopupWindow를 사용하면 사용자가 현재 보고 있는 화면의 흐름을 방해하지 않고, 추가적인 정보를 제공할 수 있습니다. 예를 들어, 더 많은 세부정보를 보여주거나 추가 설명을 제공할 때 유용합니다.
- 화면 공간 활용:
- 주요 화면에 많은 정보를 동시에 표시할 수 없을 때, PopupWindow를 사용하여 필요한 정보를 별도로 띄워 공간을 절약할 수 있습니다.
- 사용자 상호작용 유도:
- 사용자에게 특정 동작을 유도하기 위해 팝업을 띄울 수 있습니다. 예를 들어, 사용자가 특정 작업을 완료하기 전 확인 메시지를 표시하거나, 추가 옵션을 제공할 때 사용합니다.
사용예시 :
- 웹 브라우저: 웹 브라우저에서 링크를 오른쪽 클릭했을 때 나타나는 컨텍스트 메뉴.
- SNS 앱: 사진이나 동영상 업로드 시, 태그 추가나 필터 적용 옵션을 제공하는 팝업.
- 일정 관리 앱: 일정 추가 시, 팝업으로 날짜와 시간, 알림 설정을 제공하는 경우.
MainActivity
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 팝업을 표시할 버튼을 찾고 클릭 리스너를 설정
Button showPopupButton = findViewById(R.id.show_popup_button);
showPopupButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 버튼 클릭 시 팝업 창을 표시
showPopupWindow(v);
}
});
}
private void showPopupWindow(View anchorView) {
// 팝업 레이아웃을 인플레이트
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = inflater.inflate(R.layout.popup_layout, null);
// 팝업 창을 생성하고 설정
final PopupWindow popupWindow = new PopupWindow(popupView,
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT,
true);
// 팝업 창의 콘텐츠를 설정하고 화면에 표시
popupWindow.setContentView(popupView);
popupWindow.showAsDropDown(anchorView, 0, 0);
// 팝업 창 내의 닫기 버튼을 찾아 클릭 리스너를 설정
Button closePopupButton = popupView.findViewById(R.id.close_popup_button);
closePopupButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 닫기 버튼 클릭 시 팝업 창을 닫음
popupWindow.dismiss();
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/show_popup_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Popup" />
</RelativeLayout>
시연영상
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android] 안드로이드 ImageSwitcher을 사용하여 부드럽게 이미지 전환하기 (2) | 2024.10.13 |
---|---|
[JAVA][Android] Chip (칩) 기능 사용하기 (0) | 2024.10.11 |
[JAVA][Android] checkBox 체크박스 사용하기 (0) | 2024.10.05 |
[JAVA][Android] MovementMethod을 사용하여 텍스트 뷰에 각각 클릭기능 부여하기 (0) | 2024.10.01 |
[JAVA][Android]Html.ImageGetter 을 사용하여 이미지 비동기로 보이게 하기 (0) | 2024.09.29 |