본문 바로가기
안드로이드 자바

[JAVA][Android] 간단한 위젯 만들기

by teamnova 2021. 12. 8.
728x90

위젯을 만들고 위젯 클릭 시 앱으로 연결되게 구현해 보겠습니다.

프로젝트 화면 - app 클릭 - 마우스 오른쪽 메뉴 - New - Widget - App Widget 을 클릭하면 기본 위젯이 생성됩니다.

new_app_widget.xml이 자동생성되는데 조금 수정하여 이미지 버튼으로 수정해주겠습니다.

<RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?attr/appWidgetBackgroundColor"
    android:padding="@dimen/widget_margin"
    android:theme="@style/ThemeOverlay.Widget.AppWidgetContainer">

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageButton_my"
        android:src="@android:drawable/btn_star"
        android:layout_centerInParent="true" />

</RelativeLayout>

NewAppWidget.java도 자동생성되는데 수정해주도록 하겠습니다.

   static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                int appWidgetId) {

        CharSequence widgetText = context.getString(R.string.appwidget_text);
        // Construct the RemoteViews object
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
        // views.setTextViewText(R.id.appwidget_text, widgetText);
        Intent intent=new Intent(context, MainActivity.class);
        PendingIntent pe=PendingIntent.getActivity(context, 0, intent, 0);
        views.setOnClickPendingIntent(R.id.imageButton_my, pe);
        // Instruct the widget manager to update the widget
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }

실행