La aplicación se bloquea al agregar un ImageView
Estoy tratando de añadir una imagen a mi aplicación, pero sigue fallando y no puedo concluir por qué.
Tengo varias imágenes en mi aplicación, pero agregar esta imagen parece ser problemática. Aquí está mi xml (EDIT: xml completo (Esto ha cambiado desde el original para fines de diseño)):
- Cómo cargar el búfer RGB565 en ImageView
- Bitmap demasiado grande para ser cargado en una textura en algunos teléfonos
- Android imageview toma espacio extra negro
- Android agrega programaticamente ImageView
- ¿Cómo puedo eliminar el espacio extra por encima y por debajo de imageView?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="match_parent" > <Button android:id="@+id/imageTextButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/imageTextButton3" android:layout_alignBottom="@+id/imageTextButton3" android:layout_alignLeft="@+id/imageTextButton2" android:layout_alignRight="@+id/imageTextButton2" android:drawableTop="@drawable/ic_launcher" android:text="Progress" /> <Button android:id="@+id/imageTextButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/imageTextButton1" android:layout_alignRight="@+id/imageTextButton1" android:layout_below="@+id/imageTextButton1" android:layout_marginTop="85dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal Plans" /> <Button android:id="@+id/imageTextButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="22dp" android:drawableTop="@drawable/ic_launcher" android:text="Your Meals" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:src="@drawable/logo" /> <Button android:id="@+id/imageTextButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="16dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal of the Day" /> </RelativeLayout>
Y mi código java (condensado por brevedad):
package com.example.c3347115app; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.content.Intent; public class MainActivity extends Activity { ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image = (ImageView) findViewById(R.id.imageView1);
Logcat:
05-10 01:55:30.718: W/dalvikvm(13140): threadid=1: thread exiting with uncaught exception (group=0x40a99228) 05-10 01:55:30.728: E/AndroidRuntime(13140): FATAL EXCEPTION: main 05-10 01:55:30.728: E/AndroidRuntime(13140): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.c3347115app/com.example.c3347115app.MainActivity}: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageView 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.access$600(ActivityThread.java:139) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.os.Handler.dispatchMessage(Handler.java:99) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.os.Looper.loop(Looper.java:156) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.main(ActivityThread.java:4987) 05-10 01:55:30.728: E/AndroidRuntime(13140): at java.lang.reflect.Method.invokeNative(Native Method) 05-10 01:55:30.728: E/AndroidRuntime(13140): at java.lang.reflect.Method.invoke(Method.java:511) 05-10 01:55:30.728: E/AndroidRuntime(13140): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-10 01:55:30.728: E/AndroidRuntime(13140): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-10 01:55:30.728: E/AndroidRuntime(13140): at dalvik.system.NativeStart.main(Native Method) 05-10 01:55:30.728: E/AndroidRuntime(13140): Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageView 05-10 01:55:30.728: E/AndroidRuntime(13140): at com.example.c3347115app.MainActivity.onCreate(MainActivity.java:22) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.Activity.performCreate(Activity.java:4538) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 05-10 01:55:30.728: E/AndroidRuntime(13140): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
¿Puede alguien averiguar cuál es el problema? Gracias por adelantado.
- Android - ViewRootImpl $ CalledFromWrongThreadException
- Establecer imagen desde android.R.drawable en vista de la imagen android
- Tinte de fondo
- Cómo crear una imagen giratoria controlada por gestos para una interfaz de usuario
- Cambiar la posición de la vista de la imagen
- ¿Por qué el ImageView no está en pantalla completa?
- El selector no funciona con el diseño y la vista de imagen
- Escala de imagen para rellenar el ancho de ImageView y mantener la relación de aspecto
Cuando crating ids en el archivo xml (usando @ + id /) Lo hace sólo en la primera aparición y más tarde Usted utiliza sólo @ id /
Así que su xml debe verse así
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="match_parent" > <Button android:id="@+id/imageTextButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/imageTextButton3" android:layout_alignBottom="@id/imageTextButton3" android:layout_alignLeft="@+id/imageTextButton2" android:layout_alignRight="@id/imageTextButton2" android:drawableTop="@drawable/ic_launcher" android:text="Progress" /> <Button android:id="@id/imageTextButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/imageTextButton1" android:layout_alignRight="@id/imageTextButton1" android:layout_below="@id/imageTextButton1" android:layout_marginTop="85dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal Plans" /> <Button android:id="@id/imageTextButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="22dp" android:drawableTop="@drawable/ic_launcher" android:text="Your Meals" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:src="@drawable/logo" /> <Button android:id="@id/imageTextButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="16dp" android:drawableTop="@drawable/ic_launcher" android:text="Meal of the Day" /> </RelativeLayout>
Estas dos líneas me parecen problemáticas:
android:layout_above="@+id/imageTextButton1" android:layout_alignRight="@+id/imageTextButton2"
¿El formulario "@ + id /" no genera un nuevo valor de id? Tal vez usted quiso decir "@ id /"
Causado por: java.lang.ClassCastException: android.widget.Button no se puede convertir en android.widget.ImageView
Usted parece tener un Button
en su diseño con el mismo ID que su ImageView
Acabo de descubrir lo que solía ir mal cuando he añadido una imagen. El problema es, en mi caso, que ScrollView no puede tener más de un hijo directo. Así que cuando he añadido una imagen al lado del niño existente, la compilación no muestra errores, pero la aplicación de tiempo de ejecución se bloquea en create. La solución fue añadir un diseño dentro de la vista de desplazamiento como un único niño directo, dentro del cual irán mis diseños y vistas de contenido útil de scrollview.
- Anclaje inverso de varios dispositivos Android a través de USB
- Cómo configurar mulitple clic evento para la única textview?