Foros del Web » Programando para Internet » Android »

emulador se para cuando pongo imágenes

Estas en el tema de emulador se para cuando pongo imágenes en el foro de Android en Foros del Web. a ver, ya sé que últimamente los últimos temas del foro son míos pero es que claro estoy aprendiendo solo y tengo un par de ...
  #1 (permalink)  
Antiguo 02/08/2014, 14:27
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
emulador se para cuando pongo imágenes

a ver, ya sé que últimamente los últimos temas del foro son míos pero es que claro estoy aprendiendo solo y tengo un par de apps que tengo a puntico, y me no me gustaría que se quedaran sin su merecida publicación por problemas que no sé solucionar.

la cuestión es que tengo una app que funciona muy bien en el emulador (a ver, aún tengo que arreglar alguna cosilla como que se pare la música cuando se cierre la app y tal, pero son cosas que sé que se solucionarán), pero tengo un problema que me tiene muy rayado!

funciona perfecta.... pero cuando no le pongo imágenes. solo me deja poner una imagen, la del botón pulsar de la primera activity (esta imagen fue la 1º que diseñé y metí en la app).

yo hago todo bien, en la carpeta dramable-mdpi, y las llamo mediante android:src="@drawable/nombre_imagen'' si es un ImageView o mediante android:background= "@drawable/nombre_imagen" si es un Button o un layout. vamos, que lo hago bien digo yo. y en el graphical layout se me ven las imágenes y eso.

pero la app en el emulador solo corre si no tiene imágenes (bueno, la del botón pulsar que digo es la única que me deja poner y que se ejecute la app).

soluciones a este extraño problema? porfa! es que me parece un problema muy raro!

la app la tengo de target de la API 10 a 20, y el emulador es un galaxinexus con API 19.


porfa!

gracias de antemano!
  #2 (permalink)  
Antiguo 03/08/2014, 11:02
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: emulador se para cuando pongo imágenes

Revisa que las imágenes que estas colocando no sean demasiado "pesadas" para el dispositivo,
recuerda que las aplicaciones móviles están limitadas en memoria.

También nos ayudaría a ayudarte que coloques la excepción que te lanza en el logcat para darnos una idea mas clara de tu problema.

Sds
  #3 (permalink)  
Antiguo 03/08/2014, 13:08
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

Lo he solucionado. Era que las imágenes las tenia en alta resolución pero las tenia en la carpeta drawable-mdpi, al cambiarlas a la drawable-xhdpi ahora ya se ven. Las tenía en una carpeta que no les correspondía por su resolución.

No sabia que las aplicaciones están limitadas en memoria. ....¿ como es eso? ¿cual es el tamaño máximo?

Gracias!
  #4 (permalink)  
Antiguo 03/08/2014, 15:05
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: emulador se para cuando pongo imágenes

El limite de carga en memoria depende del dispositivo, android en su documentación ofrece un tutorial de como cargar las imagenes en el dispositivo adecuadamente, esto incluye el cache y guardar en disco.

http://developer.android.com/trainin...aps/index.html

Suerte.
  #5 (permalink)  
Antiguo 04/08/2014, 08:32
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Respuesta: emulador se para cuando pongo imágenes

marcos: recordemos que los diversos directorios de imágenes (drawables) en Android deberían contener las mismas imágenes pero con distintas resoluciones, de tal manera que nuestra aplicación se vea adecuadamente en todos los dispositivos independiente de su resolución. Lo que te ocurría, era que el emulador (por las características de su configuración) estaba buscando la imagen (que existía para la aplicación, en la clase R y todo) pero que no se encontraba en el directorio de la resolución correspondiente. Lo digo, porque si piensas publicar esas aplicaciones, como las descargue alguien que tena una mayor o una menor resolución que la que usaste para testear, la aplicación se caerá igual como te ocurrió a ti.

Salud(os)

PD: racanix, muy buen link, se agradece.
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #6 (permalink)  
Antiguo 04/08/2014, 15:53
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

Cita:
Iniciado por El_Metallick Ver Mensaje
marcos: recordemos que los diversos directorios de imágenes (drawables) en Android deberían contener las mismas imágenes pero con distintas resoluciones, de tal manera que nuestra aplicación se vea adecuadamente en todos los dispositivos independiente de su resolución. Lo que te ocurría, era que el emulador (por las características de su configuración) estaba buscando la imagen (que existía para la aplicación, en la clase R y todo) pero que no se encontraba en el directorio de la resolución correspondiente. Lo digo, porque si piensas publicar esas aplicaciones, como las descargue alguien que tena una mayor o una menor resolución que la que usaste para testear, la aplicación se caerá igual como te ocurrió a ti.

Salud(os)

ya, ok, para esta app que tiene pocas imágenes no tengo problema en poner cada imagen en distintas resoluciones....

pero tengo otra que tiene 850 imágenes, y me parece demasiado tener que poner todas en varias resoluciones, haciendo que la app pese mucho. porque se pasaría de 850 pues a 3.400 imágenes o así, y siendo que cada imagen pesa como 35Kb, no sería demasiada carga?

¿cuál sería la solución para una app como esta con tantas imágenes?


gracias a todos por responder! ;)
  #7 (permalink)  
Antiguo 04/08/2014, 16:39
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Respuesta: emulador se para cuando pongo imágenes

Muchos diseñadores de juegos para móviles toman como estrategia fijar una determinada resolución para trabajar y luego hacerlo escalable en X y en Y, de tal manera que se adapte a la resolución, pero para serte franco, de eso sólo he escuchado, experiencia en ello no tengo por lo cual no es mucho más lo que te puedo ayudar, lo que si, recuerdo que una de las veces lo escuché en alguno de los tutoriales de Jesús Conde, y justamente está orientado al desarrollo de juegos principalmente, mundo que se aleja a lo que desarrollo yo en android por lo cual sólo lo escuché pero no lo internalicé realmente.

Espero te sea de ayuda.

Salud(os)

---------------EDIT---------------

Ahh, además, en alguno de sus videos trata el tema de la reproducción de sonidos/música, quizá te sirva para solucionar tu problema de que la música no se detiene.
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #8 (permalink)  
Antiguo 04/08/2014, 16:47
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

gracias por responder.

sí, he visto tutoriales suyos, pero aún no llegué a la parte en la que explicaba eso. ahora ya me toca verlos por lo que se ve jaja
a ver si encuentro algo útil!
  #9 (permalink)  
Antiguo 08/08/2014, 20:34
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

he mirado y nada, no encuentro nada sobre esto...

mi app es sencilla, es la 1º que hago: son 3 activities. la cuestión es que sólo me permite poner imágenes en la primera que aparece. si pongo imágenes en las otras dos se para ''unfortunately has stopped!''. si quito las imágenes funciona. no tiene sentido.

todas las imágenes las tengo en la misma carpeta drawable y son con las mismas dimensiones y todo está bien, pero me deja poner en la primera activity y en el resto no...

esto es un jodido reto! alguien me ayuda? gracias!
  #10 (permalink)  
Antiguo 11/08/2014, 10:09
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: emulador se para cuando pongo imágenes

Como te comentaba un "unfortunately has stopped!" no nos dice nada, tendrás que postear el log del logcat si deseas que alguien te ayude.

Sds
  #11 (permalink)  
Antiguo 11/08/2014, 15:47
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

aquí lo pongo, perdonad. pues eso, todas las imágenes las tengo en drawable-mdpi, y todas con las mismas características, pero en la primera activity se me ven y en las otras dos (mi app solo tiene 3) se para la app.

el logcat que pongo es de haber puesto una imagen como background en la segunda activity (pero este logcat me aparece igualmente ponga esa imagen o ponga un background en un Button de esa activity o lo que sea, ponga la imagen que ponga y sea donde sea, se para):


08-11 17:59:19.419: E/AndroidRuntime(1204): FATAL EXCEPTION: main
08-11 17:59:19.419: E/AndroidRuntime(1204): Process: com.pobe.freethefool, PID: 1204
08-11 17:59:19.419: E/AndroidRuntime(1204): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pobe.freethefool/com.pobe.freethefool.SegundaPantalla}: android.view.InflateException: Binary XML file line #3: Error inflating class <unknown>
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2195)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2245)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.ActivityThread.access$800(ActivityThre ad.java:135)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1196)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.os.Handler.dispatchMessage(Handler.java:10 2)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.os.Looper.loop(Looper.java:136)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.ActivityThread.main(ActivityThread.jav a:5017)
08-11 17:59:19.419: E/AndroidRuntime(1204): at java.lang.reflect.Method.invokeNative(Native Method)
08-11 17:59:19.419: E/AndroidRuntime(1204): at java.lang.reflect.Method.invoke(Method.java:515)
08-11 17:59:19.419: E/AndroidRuntime(1204): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:779)
08-11 17:59:19.419: E/AndroidRuntime(1204): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:595)
08-11 17:59:19.419: E/AndroidRuntime(1204): at dalvik.system.NativeStart.main(Native Method)
08-11 17:59:19.419: E/AndroidRuntime(1204): Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class <unknown>
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.createView(LayoutInfla ter.java:620)
08-11 17:59:19.419: E/AndroidRuntime(1204): at com.android.internal.policy.impl.PhoneLayoutInflat er.onCreateView(PhoneLayoutInflater.java:56)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.onCreateView(LayoutInf later.java:669)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.createViewFromTag(Layo utInflater.java:694)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.inflate(LayoutInflater .java:469)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.inflate(LayoutInflater .java:397)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.inflate(LayoutInflater .java:353)
08-11 17:59:19.419: E/AndroidRuntime(1204): at com.android.internal.policy.impl.PhoneWindow.setCo ntentView(PhoneWindow.java:290)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.Activity.setContentView(Activity.java: 1929)
08-11 17:59:19.419: E/AndroidRuntime(1204): at com.pobe.freethefool.SegundaPantalla.onCreate(Segu ndaPantalla.java:39)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.Activity.performCreate(Activity.java:5 231)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1087)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2159)
08-11 17:59:19.419: E/AndroidRuntime(1204): ... 11 more
08-11 17:59:19.419: E/AndroidRuntime(1204): Caused by: java.lang.reflect.InvocationTargetException
08-11 17:59:19.419: E/AndroidRuntime(1204): at java.lang.reflect.Constructor.constructNative(Nati ve Method)
08-11 17:59:19.419: E/AndroidRuntime(1204): at java.lang.reflect.Constructor.newInstance(Construc tor.java:423)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.LayoutInflater.createView(LayoutInfla ter.java:594)
08-11 17:59:19.419: E/AndroidRuntime(1204): ... 23 more
08-11 17:59:19.419: E/AndroidRuntime(1204): Caused by: java.lang.OutOfMemoryError
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.graphics.BitmapFactory.nativeDecodeAsset(N ative Method)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.graphics.BitmapFactory.decodeStream(Bitmap Factory.java:587)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.graphics.BitmapFactory.decodeResourceStrea m(BitmapFactory.java:422)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.graphics.drawable.Drawable.createFromResou rceStream(Drawable.java:840)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.content.res.Resources.loadDrawable(Resourc es.java:2110)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.content.res.TypedArray.getDrawable(TypedAr ray.java:602)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.View.<init>(View.java:3554)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.view.ViewGroup.<init>(ViewGroup.java:470)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.widget.LinearLayout.<init>(LinearLayout.ja va:176)
08-11 17:59:19.419: E/AndroidRuntime(1204): at android.widget.LinearLayout.<init>(LinearLayout.ja va:172)
08-11 17:59:19.419: E/AndroidRuntime(1204): ... 26 more


si no pongo imágenes las app corre poerfectamente sin incidencia alguna, pero pongo una solo imagen a partir de la primera activity y se para. este tema me tiene loco!

gracias por ayudar!

Última edición por marcosscalator; 11/08/2014 a las 16:09
  #12 (permalink)  
Antiguo 11/08/2014, 16:10
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

por cierto, ninguno de mis xml o clases o archivos java tiene ningún error, de eso me he encargado yo que me he repasado el código letra a letra, además de reescribirlo varias veces por si acaso.

saludos!
  #13 (permalink)  
Antiguo 11/08/2014, 16:21
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

estaba haciendo ahora unas pruebas más....

he puesto la imagen que pongo como background en la primera activity para que esté también en la segunda, y curiosamente...... resulta que se ve! la app ha pasado a la segunda activity y se ha visto bien! solo que ha funcionado al ponerle la imagen de la 1º.....
esta segunda activity tiene 2 Button, así que le he puesto imagenes como background de los 2 Button.... y se ha parado.

no entiendo por qué si pongo la imagen de background que uso en la 1º activity funciona y si no no. no lo entiendo porque diseñé esa imagen y la guardé para la 1º activity, y luego la modifiqué un poco (le giré la cabeza al muñeco, añadí una gota de sudor, dibujé un monstruo, etc...) y el mismo archivo lo guardé con otro nombre para la 2º activity. y lo mismo hice para la 3º. vamos, que no toqué nada de resolución, ni formato, ni nada de nada, las guardé las 3 con las mismas características.....

no entiendo... ayuda? gracias!
  #14 (permalink)  
Antiguo 11/08/2014, 16:28
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: emulador se para cuando pongo imágenes

Al parecer si tienes un error con tu xml que carga el activity o al momento de
obtener el objeto desde la misma.

Código:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pobe.freethefool/com.pobe.freethefool.SegundaPantalla}: android.view.InflateException: Binary XML file line #3: Error inflating class <unknown>
Revisa en el xml esa linea que corresponda a la etiqueta correcta o postea tu xml y clase java para ver en que momento hace referencia.
  #15 (permalink)  
Antiguo 11/08/2014, 16:44
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

sí, sabía que alguien me iba a comentar ese error porque parece que está ahí, pero no hay nada. la linea 3 de ese xml es del LinearLayout. pongo mi xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="right"
android:background="@drawable/tonto_muerto"
>

<Button
android:id="@+id/ok"
android:layout_width="180dp"
android:layout_height="40dp"
android:layout_marginTop="310dp"
android:layout_gravity="right"
/>

<Button
android:id="@+id/compartir"
android:layout_width="180dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_gravity="right"
/>


</LinearLayout>


la linea 3 es el LinearLayout. voy a poner el archivo java correspondiente a este xml, pero no creo que el fallo esté en el java no sé, porque como digo cuando pongo la imagen de background de la primera activity sí que se ve.

el java:

package com.pobe.freethefool;

import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;


public class SegundaPantalla<string> extends Activity implements OnClickListener, OnCompletionListener{

private Button ok, compartir;
MediaPlayer mp1;
SoundPool sp2;
SoundPool sp3;
int share;
int again;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

//esto quita el título de la activity en la parte superior
requestWindowFeature(Window.FEATURE_NO_TITLE);
//y esto para pantalla completa (oculta incluso la barra de estado)
this.getWindow().setFlags(

WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.segunda_pantalla);

this.setVolumeControlStream(AudioManager.STREAM_MU SIC);

ok = (Button) findViewById(R.id.ok);
ok.setOnClickListener(this);
compartir = (Button) findViewById(R.id.compartir);
compartir.setOnClickListener(this);

sp2 = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
share = sp2.load (this, R.raw.eswich, 1);
sp3 = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
again = sp3.load (this, R.raw.eswich, 1);

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.ok:
Intent vueltaPrimeraPantalla2 = new Intent (SegundaPantalla.this, PantallaDePulsar.class);
startActivity (vueltaPrimeraPantalla2);
if (again != 0) {
sp3.play(again, 1, 1, 0, 0, 1);
}
mp1.stop();
break;

case R.id.compartir:
Intent i = new Intent (Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.texto_compartir) );
startActivity (Intent.createChooser(i, getResources().getString(R.string.selector)));
if (share != 0) {
sp2.play(share, 1, 1, 0, 0, 1);
}
mp1.stop();
break;

}
}


//esto sirve para señalar que la música debe parar cuando se salga de la activity o app
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub

mp1.start();

}

public void onStart () {
super.onStart();
mp1 = MediaPlayer.create(this, R.raw.buider);
mp1.setOnCompletionListener(this);
mp1.start();
mp1.setLooping(true);

}

public void onStop () {
super.onStop();
mp1.stop();
mp1.release();

}


//esto hace que el botón de atrás del móvil te lleve a la primera pantalla
public void onBackPressed() {
// do something on back.
Intent vueltaPrimeraPantalla3 = new Intent (SegundaPantalla.this, PantallaDePulsar.class);
startActivity (vueltaPrimeraPantalla3);
mp1.stop();
return;
}


}



tanto el xml como el java están como cuando me da error en el logcat, es decir, simplemente con una imagen como background en la activity.


gracias por el interés racanix! ;)
  #16 (permalink)  
Antiguo 11/08/2014, 16:46
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 10 años
Puntos: 0
Respuesta: emulador se para cuando pongo imágenes

lo voy a poner de esta forma también, pero no creo que se vea mejor, a gustos:

xml:
Código Java:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  4.     android:layout_width="wrap_content"
  5.     android:layout_height="wrap_content"
  6.     android:orientation="vertical"
  7.     android:gravity="right"
  8.     android:background="@drawable/tonto"
  9.     >
  10.  
  11.     <Button
  12.         android:id="@+id/ok"
  13.         android:layout_width="180dp"
  14.         android:layout_height="40dp"
  15.         android:layout_marginTop="310dp"
  16.         android:layout_gravity="right"
  17.         android:background="@drawable/boton_play_pulsacion"
  18.         />
  19.  
  20.     <Button
  21.         android:id="@+id/compartir"
  22.         android:layout_width="180dp"
  23.         android:layout_height="40dp"
  24.         android:layout_marginTop="10dp"
  25.         android:layout_gravity="right"
  26.         android:background="@drawable/boton_compartir_pulsacion"
  27.         />
  28.  
  29.    
  30. </LinearLayout>


java:

Código Java:
Ver original
  1. package com.pobe.freethefool;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.media.AudioManager;
  6. import android.media.MediaPlayer;
  7. import android.media.MediaPlayer.OnCompletionListener;
  8. import android.media.SoundPool;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.view.Window;
  12. import android.view.WindowManager;
  13. import android.view.View.OnClickListener;
  14. import android.widget.Button;
  15.  
  16.  
  17. public class SegundaPantalla<string> extends Activity implements OnClickListener, OnCompletionListener{
  18.  
  19.     private Button ok, compartir;
  20.     MediaPlayer mp1;
  21.     SoundPool sp2;
  22.     SoundPool sp3;
  23.     int share;
  24.     int again;
  25.    
  26.     @Override
  27.     protected void onCreate(Bundle savedInstanceState) {
  28.         // TODO Auto-generated method stub
  29.         super.onCreate(savedInstanceState);
  30.    
  31.         //esto quita el título de la activity en la parte superior
  32.          requestWindowFeature(Window.FEATURE_NO_TITLE);
  33.          //y esto para pantalla completa (oculta incluso la barra de estado)
  34.          this.getWindow().setFlags(
  35.          
  36.         WindowManager.LayoutParams.FLAG_FULLSCREEN,
  37.         WindowManager.LayoutParams.FLAG_FULLSCREEN);
  38.        
  39.         setContentView(R.layout.segunda_pantalla);
  40.        
  41.         this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
  42.        
  43.         ok = (Button) findViewById(R.id.ok);
  44.         ok.setOnClickListener(this);
  45.         compartir = (Button) findViewById(R.id.compartir);
  46.         compartir.setOnClickListener(this);
  47.        
  48.         sp2 = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);  
  49.         share = sp2.load (this, R.raw.eswich, 1);
  50.         sp3 = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
  51.         again = sp3.load (this, R.raw.eswich, 1);  
  52.        
  53.     }
  54.  
  55.     @Override
  56.     public void onClick(View v) {
  57.         // TODO Auto-generated method stub
  58.         switch (v.getId()) {
  59.         case R.id.ok:
  60.             Intent vueltaPrimeraPantalla2 = new Intent (SegundaPantalla.this, PantallaDePulsar.class);
  61.             startActivity (vueltaPrimeraPantalla2);
  62.             if (again != 0) {
  63.             sp3.play(again, 1, 1, 0, 0, 1);
  64.             }
  65.             mp1.stop();
  66.             break;
  67.            
  68.         case R.id.compartir:
  69.             Intent i = new Intent (Intent.ACTION_SEND);
  70.             i.setType("text/plain");
  71.             i.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.texto_compartir));
  72.             startActivity (Intent.createChooser(i, getResources().getString(R.string.selector)));
  73.             if (share != 0) {
  74.             sp2.play(share, 1, 1, 0, 0, 1);
  75.             }
  76.             mp1.stop();
  77.             break;
  78.  
  79.         }
  80.     }
  81.    
  82.    
  83.     //esto sirve para señalar que la música debe parar cuando se salga de la activity o app
  84.         @Override
  85.         public void onCompletion(MediaPlayer mp) {
  86.             // TODO Auto-generated method stub
  87.            
  88.             mp1.start();
  89.            
  90.         }
  91.        
  92.         public void onStart () {
  93.             super.onStart();
  94.             mp1 = MediaPlayer.create(this, R.raw.buider);
  95.             mp1.setOnCompletionListener(this);
  96.             mp1.start();
  97.             mp1.setLooping(true);
  98.            
  99.         }
  100.        
  101.         public void onStop () {
  102.             super.onStop();
  103.             mp1.stop();
  104.             mp1.release();
  105.            
  106.         }
  107.    
  108.    
  109.     //esto hace que el botón de atrás del móvil te lleve a la primera pantalla
  110.     public void onBackPressed() {
  111.         // do something on back.
  112.         Intent vueltaPrimeraPantalla3 = new Intent (SegundaPantalla.this, PantallaDePulsar.class);
  113.         startActivity (vueltaPrimeraPantalla3);
  114.         mp1.stop();
  115.         return;
  116.         }
  117.  
  118.  
  119. }

ah pues sí, se ve mejor, pensaba que se vería como en un cajón en pequeño ;)
  #17 (permalink)  
Antiguo 12/08/2014, 11:06
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: emulador se para cuando pongo imágenes

A simple vista no veo algo mal en el código, lo único que puedo recomendarte
es que coloques un break point antes de esta linea

Código:
        setContentView(R.layout.segunda_pantalla);
y revisar donde sucede la excepción.

La otra como comentas es hacer pruebas con otras imágenes de menor tamaño.

Sds.

Etiquetas: androi, app, emulador, pongo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.