teclado tamaño samsung personalizar para grande google gboard fondo descargar como color celular cambiar aumentar android android-layout android-scrollview android-background

tamaño - personalizar teclado android



Android: cambio de tamaño de la imagen de fondo en el teclado emergente (12)

¿Por qué no te gusta esto?

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" android:focusable="true" android:background="@drawable/background" android:focusableInTouchMode="true"> <RelativeLayout android:id="@+id/relative" android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" /** Other stuff */ > </RelativeLayout> </ScrollView>

Estoy desarrollando una aplicación en la que la imagen de fondo se reduce en el teclado emergente. Mi .xml es el siguiente:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:facebook="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background" > <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > /** Other stuff */ </RelativeLayout> </ScrollView> </RelativeLayout>

Busqué en Google y encontré que, para agregar

android:windowSoftInputMode="stateVisible|adjustPan"

en mi archivo manifiesto Pero no sirve de nada.

Editar:

Mi diseño antes de que aparezca el panel de teclas aparece como:

Y después aparece como

Por favor, compruebe la diferencia en la imagen de fondo. En la imagen 1, la imagen está en tamaño y en la imagen 2 la imagen de fondo está reducida. Necesito que el pie de página y el fondo se desplacen hacia arriba en la ventana emergente del teclado.

Lo que me falta o estoy haciendo mal, por favor sugiéreme


Debe usar la opción adjustResize para la configuración windowSoftInputMode en la Activity en su archivo AndroidManifest.xml .


Debes mover el android:background="@drawable/background" en un ImageView arriba de ScrollView . Cuando el teclado se abre, efectivamente hace que la pantalla sea más pequeña, y al tener una imagen como fondo, no tiene control sobre cómo cambiar el tamaño / recorte. Por lo tanto, asumiendo que desea tener el ancho completo de la imagen pero mantener la relación de avance, pruebe esto

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:facebook="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/background" android:scaleType="centerCrop" /> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > /** Other stuff */ </RelativeLayout> </ScrollView> </RelativeLayout>

Puede probar diferentes valores de android:scaleType para lograr el efecto deseado. Si desea que la imagen se recorte desde la parte superior en lugar del recorte medio predeterminado, consulte here cómo conseguirlo o intente usar this biblioteca


En lugar de android:windowSoftInputMode="stateVisible|adjustPan" , debe cambiar a android:windowSoftInputMode="stateVisible|adjustResize" . Funcionó para mí.


Estoy usando la jerarquía de vista inferior y está funcionando bien para mí:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ScrollView android:id="@+id/rfqItemsParentScrollView" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" >


Hey, ¿puedes por favor intentar agregar esto?

android:isScrollContainer="false"

en su ScrollView . Ha resuelto mi problema una vez. Te podría ayudar a ti también.

Además, agregue esto a su actividad en manifest.xml

android:windowSoftInputMode="adjustPan"

Espero eso ayude..!! :)


Ok, si tengo la pregunta correcta, desea un diseño con un fondo y una vista de desplazamiento. Y cuando aparece el teclado de software, desea cambiar el tamaño de la vista de desplazamiento, pero mantener el fondo a tamaño completo, ¿no? Si eso es lo que quiere, entonces puedo haber encontrado una solución para este problema:

Lo que puedes hacer es hacer 2 actividades.

Actividad 1:

public class StartActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent StartApp = new Intent(this, DialogActivity.class); startActivity(StartApp); // Launch your official (dialog) Activity setContentView(R.layout.start); // your layout with only the background } }

Actividad2:

public class DialogActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); // get rid of dimming this.requestWindowFeature(Window.FEATURE_NO_TITLE); //get rid of title bar (if you want) setContentView(R.layout.dialog); //Dialog Layout with scrollview and stuff Drawable d = new ColorDrawable(Color.BLACK); //make dialog transparent d.setAlpha(0); getWindow().setBackgroundDrawable(d); } }

comenzar el diseño:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/test"> //your background </LinearLayout>

diseño de diálogo:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- All your Scrollview Items --> </LinearLayout> </ScrollView> </RelativeLayout>

AndroidManifest.xml

Actividad de inicio:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

Actividad de diálogo

android:theme="@android:style/Theme.Dialog" android:windowSoftInputMode="adjustResize" android:excludeFromRecents="true"

Editar: para finalizar las Actividades, use lo siguiente en algún lugar dentro de su DialogActivity (ejemplo: anular el botón de retroceso ):

@Override public void onBackPressed() { Intent intent = new Intent(getApplicationContext(), StartActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("EXIT", true); startActivity(intent); }

y en onCreate() de StartActivity:

if (getIntent().getBooleanExtra("EXIT", false)) { finish(); } else { Intent StartApp = new Intent(this, TestActivity.class); startActivity(StartApp); }

Capturas de pantalla !

Normal

Haga clic en el cuadro EditarTexto

Después de Desplácese hacia abajo (ps: pongo el cuadro de texto dentro de scrollview por eso se ha ido))

Espero que esto te ayude;)


Solo usa en tu onCreate() este código:

protected void onCreate(Bundle savedInstanceState) { ... getWindow().setBackgroundDrawableResource(R.drawable.your_image_resource); ... }

y elimina esta línea en tu xml:

android:background="@drawable/background"

Lee mas en:

http://developer.android.com/reference/android/view/Window.html


Tuve el mismo problema.

Agregue su fondo de diseño externo dentro del método onCreate como se muestra a continuación

getWindow().setBackgroundDrawableResource(R.drawable.login_bg);

y añadir su diseño exterior como

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" > <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#4d000000" ><other code></ScrollView></RelativeLayout>

Agregue android:layout_weight="1" para el diseño externo y no configure el fondo en un archivo xml. Creo que esto ayuda a alguien


Una vez me enfrenté al problema similar, la mía se resolvió mediante el uso de las siguientes propiedades en el manifiesto, utilícela donde se declara su actividad.

android:windowSoftInputMode="stateHidden|adjustResize|adjustPan"


Utilice ScrollView como principal padre. Se desplazará hacia arriba y hacia abajo automáticamente cuando abra y cierre el teclado.


Verifique esta respuesta , el truco básico es que no establece el fondo para el diseño sino para la ventana. Esto se puede hacer desde la actividad con getWindow().setBackgroundDrawable() , o puede configurarlo en un tema para su actividad.