Widget Android dimensiones?

Tengo un widget que es el ancho es "180dp". Quiero mostrar una actividad cuando el usuario hace clic en un botón en el widget, y el ancho de la actividad debe ser igual a width.It Widget parece simple, pero no pude resolver it.Indeed Supongo que al menos una de estas tres maneras me ayuda, pero no lo hacen:
1- Estableciendo la dimensión de la actividad en manifestar exactamente "180dp", pero no pude encontrar ninguna propiedad como "android: width" para la etiqueta Activity en manifesto.
2- Obtener las dimensiones del widget en su método AppWidgetProvider , onReceive () por intento.getSourceBounds (). GetWidth () y usarlo en Activity onAttachedToWindow ():
En AppWidgetProvider:

@Override public void onReceive(Context context, Intent intent) { ... int mWidgetHeight = intent.getSourceBounds().height(); int mWidgetWidth = intent.getSourceBounds().width(); ... App.setmWidgetHeight(mWidgetHeight); App.setmWidgetWidth(mWidgetWidth); ... } 

En Actividad:

 @Override public void onAttachedToWindow() { View view = getWindow().getDecorView(); WindowManager.LayoutParams lp = (LayoutParams) view.getLayoutParams(); lp.gravity = Gravity.LEFT | Gravity.TOP; super.onAttachedToWindow(); ... lp.width = App.getmWidgetWidth(); lp.height = App.getmWidgetHeight(); ... getWindowManager().updateViewLayout(view, lp); } 

En este caso, cuando pruebo mi aplicación en el emulador, el ancho de la actividad es aproximadamente la mitad del ancho del widget.
3- Cambio de "180 dp" a píxel:

 @Override public void onAttachedToWindow() { View view = getWindow().getDecorView(); WindowManager.LayoutParams lp = (LayoutParams) view.getLayoutParams(); lp.gravity = Gravity.LEFT | Gravity.TOP; ... super.onAttachedToWindow(); ... DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); float xDpi = metrics.xdpi; float yDpi = metrics.ydpi; ... lp.width = (int) (180 * (xDpi / 160)) ; lp.height = (int) (120 * (yDpi / 160)); ... getWindowManager().updateViewLayout(view, lp); } 

En este caso, en el resultado del emulador parece estar bien, pero en el dispositivo (GalaxyTab 2.3.3), el ancho de la actividad está en aproximadamente (2/3) del ancho del widget.
En resumen, esta es mi pregunta:
Si tengo las dimensiones de mi widget en dp, ¿cómo puedo establecer las dimensiones de la actividad exactamente iguales a ella?

Tratar

 DisplayMetrics metrics = getApplication().getApplicationContext().getResources().getDisplayMetrics(); metrics.widthPixels metrics.heightPixels 

Sólo por curiosidad – ¿por qué necesita establecer el tamaño exacto de su actividad? Layout with android: layout_width = "fill_parent" y android: layout_height = "fill_parent" toma todo el espacio disponible en un widget, sea cual sea su tamaño.

  • Formato personalizado editar entrada de texto android para aceptar número de tarjeta de crédito
  • Control de brillo de la pantalla en android utilizando "Background Service"
  • Botón de anillo redondo en Android
  • Android Studio: EditText editable es obsoleto Cómo utilizar inputType
  • Android: Dibujo de un botón como spinner
  • Edición de la galería Android: el tamaño de la galería es mayor de lo esperado
  • Widget de la pantalla de bloqueo de Android
  • Vista de imagen de Android
  • SetContentView (R.layout.Main); Main no se puede resolver o no es un campo
  • Cómo ocultar vistas parcialmente visibles en Android xml layout sin código?
  • NumberPicker en AlertDialog siempre activa el teclado. ¿Cómo desactivar esto?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.