위젯을 lockscreen에두기 전에 자동 크기 조정 위젯 크기를 픽셀 단위로 알고있는 방법이 있습니까? 예를 들어 잠금 화면에 위젯을 배치하면 구성 활동이 시작되고이 활동이 위젯의 크기를 얻을 수있는 방법은 무엇입니까?lockscreen의 위젯 영역의 크기를 얻는 방법은 무엇입니까?
1
A
답변
0
AFAICT는 사용자가 (잠금 또는 홈) 화면에 위젯을 배치 할 때까지 앱이 위젯의 크기를 결정할 수 없습니다. 그렇다면 OS는 크기를 반환합니다 [왜?] 물론 사용자는 위젯의 크기를 조정할 수 있습니다.
예. 의 AppWidgetProvider의 onUpdate()
방법이 디버그 코드를 추가
Bundle newOptions = appWidgetManager.getAppWidgetOptions(appWidgetIds[0]);
int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH);
int minHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT);
int maxWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH);
int maxHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT);
Log.i("getAppWidgetOptions", String.format(
"getAppWidgetOptions %d x %d .. %d x %d",
minWidth, minHeight, maxWidth, maxHeight));
넥서스 4 에뮬레이터, 새로 배치 홈 화면 위젯 보고서에서 실행 : 240 x 58 .. 302 x 84
를 DP 단위. 그 위젯이 onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)
를 재정 의하여 크기를 조정할 때
android:minWidth="180dp"
android:minHeight="40dp"
android:minResizeWidth="180dp"
android:minResizeHeight="40dp"
의 AppWidgetProvider가 감지 할 수 있습니다 :이 설정 <appwidget-provider>
XML로입니다. 위의 코드와 유사하지만 [getAppWidgetOptions()
호출을 생략하면] 240 x 58 .. 302 x 84
과 (위젯을 수동으로 늘린 후에) 328 x 58 .. 408 x 84
과 같은 범위를 기록합니다.
위와 같은 최소/최대 크기 값이 변경되는지 확실하지 않지만 잠금 화면에서도 잠금 키패드의 화면 공간을 사용자가 끌어다 놓을 수 있습니다.
예. 네가 옳은 것 같아. lockscreen의 widget 영역의 크기를 얻는 방법은 없습니다. –