Ancho botones y evitar apagado pantalla Android

Amazon

Intenté que el nombre fuera lo más descriptivo posible y me salió un jeroglífico.

Bien, a lo que iba:

Estoy desarrollando una simple aplicación donde tengo esto (he tratado de explicarlo y me sale un pastel infumable):

Y digamos que llevo un par de horas intentando que queden los 4 botones con un ancho proporcional al ancho de la pantalla y que al cambiar de horizontal a vertical sigan viéndose bien dichos botones, y no me sale ni para atrás. Edit: Si pudiese ponerlo en plan 25% cada botón sería perfecto :3

Y la otra duda es saber cómo puedo hacer para que mi aplicación evite que se apague la pantalla por el tiempo de espera por defecto que tiene puesto el usuario (digamos que es un reproductor de vídeo y no quiero que a los 30 segundos se apague la pantalla y me quede a 2 velas xd)

Si alguien tiene idea de algo agradecería que me ayudara ahora (pues soy de los que cuando dejan de picar código lo retoman al tiempo, al muuuuuucho tiempo)

<3

BLZKZ

es mas facil si pegas el codigo del xml para saber como lo llevas. Piro a dormir en unas horas le echo un ojo

1 respuesta
Amazon

#2 supongo que va por los botónes. Al final le puse nombres cortitos y funciona perfect, pero te lo pongo igualmente por si le quieres echar un ojo:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<LinearLayout
    android:id="@+id/menu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible" >


    <Button
        android:id="@+id/btn1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:clickable="true"
        android:text="@string/1"
        android:textSize="18px" />

    <Button
        android:id="@+id/btn2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/2"
        android:textSize="18px" />

    <Button
        android:id="@+id/btn3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/3"
        android:textSize="18px" />

    <Button
        android:id="@+id/btn4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/4"
        android:textSize="18px" />
</LinearLayout>

<WebView
    android:id="@+id/vista"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1" />

</LinearLayout>

Ahora lo que me reconcome es la 2ª cuestión

1 respuesta
BLZKZ

#3 Mira esto http://developer.android.com/reference/android/view/View.html#attr_android:keepScreenOn

http://www.mail-archive.com/android-developers@googlegroups.com/msg46699.html

aun asi creo que en el manifest tienes que indicar el permiso

1 respuesta
Amazon

#4 Voy a mirar eso.

Porque antes probé con un Wake Lock y petaba la aplicación :/

Thx !

Edit: funciona perfecto el setKeepScreenOn, simplemente añadiendo "webView.setKeepScreenOn(true);" detrás del "webView.loadUrl(url);" se queda la pantalla encendida, y no me tengo que preocupar de "setearlo" a false, pues probé y al salirme de la app y esperar 30 segundos se apaga la pantalla.

Y sin añadir permisos necesarios en el manifest ni nada xD

Muchas gracias :3 ^^

Tig

Para el tema de ancho proporcional, si es un LinearLayout tienes que usar el atributo "weightSum". Algo así


<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2" >
<Button
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
<Button
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>

Fíjate en el detalle de asignar ancho 0dp a los elementos con peso. Si fuera un linearlayout vertical, habría que asignar altura 0 dp.

1 respuesta
Amazon

#6 Si te fijas en #3, así es como lo tengo hecho :3 lo que sin lo de weightSum

1 respuesta
Tig

#7 el weightsum es fundamental, él va dividir el espacio del que disponga en ese número de trozos. En tu caso supongo que funciona porque todos tienen peso 1, pero si quieres que el espacio no se reparta de manera equitativa, tendrás que meter el weightsum

Otra cosa, el tamaño de letra mejor en sp (scaled pixel) que en px

pd: no había leído que ya lo habías arreglado

1 respuesta
Amazon

#8 Da igual que ya lo hubiese arreglado, me acabas de dar a conocer algo que no sabía y que me será muy útil ^^ gracias :3

Usuarios habituales

  • Amazon
  • Tig
  • BLZKZ