Foro de elhacker.net

Programación => Java => Mensaje iniciado por: rastanthology en 24 Septiembre 2010, 04:54 am



Título: Alguien sabe si se puede hacer andar la funcion de cycleInterpolator en android?
Publicado por: rastanthology en 24 Septiembre 2010, 04:54 am
Buenas, estaba adentrandome en la programacion para android, nunca programe en java pero estoy haciendo lo posible para entenderlo ahora :P

Estaba siguiendo la 3era edicion del libro Hello android en el ejemplo del sudoku por si alguien lo tiene en mente...

Mi problema es que en una clase dada una serie de eventos queria que la pantalla tiemble de lado a lado con el cycleInterpolator. Para eso el ejemplo dice que creemos una carpeta llamada anim dentro de res, con los archivos shake.xml y cycle_7.xml

siendo shake.xml
 
Código
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <translate
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:fromXDelta="0"
  5. android:toXDelta="10"
  6. android:duration="1000"
  7. android:interpolator="@anim/cicle_7" />
  8.  
cycle_7.xml
Código
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <cycleInterpolator
  3.       // aca ^ me dice Error parsing XML: UNBOUND PREFIX
  4. xmnls:android="http://schemas.android.com/apk/res/android"
  5. android:cycles="7" />
  6.  
dentro de la clase que llama esto  importe  las siguientes cosas:
Código
  1. import android.content.Context;
  2. import android.graphics.Canvas;
  3. import android.graphics.Paint;
  4. import android.graphics.Rect;
  5. import android.graphics.Paint.FontMetrics;
  6. import android.graphics.Paint.Style;
  7. import android.util.Log;
  8. import android.view.KeyEvent;
  9. import android.view.MotionEvent;
  10. import android.view.View;
  11. import android.view.animation.AnimationUtils; // creo que estas son las que incluyen al interpolator
  12.  
y asi llamo a la animacion:
Código
  1. public void setSelectedTile(int tile) {
  2. if (game.setTileIfValid(selX, selY, tile)) {
  3. invalidate(); // las pistas pueden cambiar
  4. } else {
  5. // num no es valido para esta tile
  6. Log.d(TAG, "setSelectedTile: invalid: " + tile);
  7. startAnimation(AnimationUtils.loadAnimation(game, R.anim.shake));
  8. }
  9. }
  10.  

La cuestion es que googlie y googlie y solo encontre alternativas que no probe todavia, pero no encontre a nadie que haya tenido este problema y lo alla solucionado usando el cycleInterpolator dentro de los interpolators...

El problema tambien es que al tener un xml con errores, R deja de funcionar y todas las clases dejan de funcionar hasta que lo solucione. Tranquilamente podria sacar todo lo relacionado a esto pero me gustaria hacerlo andar. Alguien tuvo este problema o puede llegar a ver el error?

Gracias

PD: Aparte de esto me surgio la duda, mi plan es hacer en un futuro un motor de juegos al estilo tiled based, que renderize imagenes desde un bitmap en un buffer (para dibujar los mapas) y las valla dibujando en la pantalla a medida que esta se mueve por el buffer. Recien estoy empezando con esto pero no se si me conviene seguir leyendo las funciones del canvas (por un posible tema de velocidad) o empezar a leer sobre programacion 2d en opengl es para android. resumido, vale la pena este metodo para juegos o conviene usar opengl por un tema de rendimiento?

Saludos


Título: Re: Alguien sabe si se puede hacer andar la funcion de cycleInterpolator en android?
Publicado por: Debci en 24 Septiembre 2010, 08:31 am
Si es posible, mejor OpenGL aunque cosas sencillas no te compliques demasiado la vida.

Saludos


Título: Re: Alguien sabe si se puede hacer andar la funcion de cycleInterpolator en android?
Publicado por: rastanthology en 24 Septiembre 2010, 18:28 pm
Gracias Debci por responder, entonces como podria usar cycleInterpolator? Estoy haciendo algo mal? O es un error del eclipse con la sdk?

Ok, voy a buscar info de opengl es 1.0, Ayer habia empezado a leer algo al respecto en algunos ebooks que tengo de android, pero solo explican como usarlo para hacer animaciones en 3d y lo basico; se que se podria usar la info para dibujar en 2d, pero me gustaria aprender a dibujar en 2d pensando solo en 2d por ahora :P; recomiendan algun ebook/guia para esto?


Título: Re: Alguien sabe si se puede hacer andar la funcion de cycleInterpolator en android?
Publicado por: Debci en 24 Septiembre 2010, 22:20 pm
LO primero, es saber si estas seguro de que openGl como tal se pueda usar en android...

Estas seguro?

Saludos


Título: Re: Alguien sabe si se puede hacer andar la funcion de cycleInterpolator en android?
Publicado por: rastanthology en 25 Septiembre 2010, 02:20 am
No, lo que funciona es opengl es 1.0, tiene ciertas limitaciones por lo que lei, para dibujar cuadrados hay que dibujar dos triangulos por ejemplo, hay ciertos dispositivos que creo que soportan 1.1.

Lo que no entendi es por que en los ejemplos que encontre se usan dos librerias distintas para el uso de opengl:

android.opengl.*
y
javax.microedition.khronos.*


Igual el ejemplo que estaba haciendo con el interpolator estaba usando el canvas

Saludos


Título: Re: Alguien sabe si se puede hacer andar la funcion de cycleInterpolator en android?
Publicado por: rastanthology en 1 Octubre 2010, 00:17 am
Al final no se como termino andando asi como estaba escrito, me parece q era un bug del eclipse... entre project cleans y grabar los xml y las clases se soluciono...