2011-04-07 6 views
8

Hola amigos Estoy creando una aplicación donde pongo dos vistas. primero es la vista de la imagen y la otra es mi vista general.Enfoque y panorámica de la vista en android

dibujo imágenes en mi vista personalizada. mi código de vista personalizada es como sigue

public class DrawView extends ImageView{ 
    @SuppressWarnings("unused") 
    private static final String TAG = "DrawView"; 
    Painter painter = new Painter(); 
    PathStack pathStack; 
    private DrawApplication drawApplication; 

    public DrawView(Context context, AttributeSet attr) { 
     super(context,attr); 
     setFocusable(true); 
     setFocusableInTouchMode(true); 
     drawApplication=(DrawApplication)context.getApplicationContext(); 
     pathStack=drawApplication.getPainter().getPathStack(); 
     painter=drawApplication.getPainter(); 
     setScaleType(ScaleType.MATRIX); 

    } 

    @Override 
    public void onDraw(Canvas canvas) { 
     float scaleFactor=drawApplication.getScaleFactor(); 
     canvas.scale(scaleFactor, scaleFactor,(float)getWidth()/2,(float)getHeight()/2); 
     List<DrawingPath> currentStack=pathStack.getCurrentStack(); 

     for (DrawingPath drawPath : currentStack) { 
      drawPath.draw(canvas, painter); 

     } 

    } 
} 

muchas cosas claras desde un código como el almacenamiento de ruta en drawapplication etc.

Ahora hemos decidido proporcionar zoom y panorámica a este punto de vista. y mi dibujo también debería ampliarse de forma correspondiente junto con la vista de imagen que está en la parte posterior.

también debería ser capaz de dibujar correctamente.

Intenté escalar el lienzo, pero eso es peor, porque después de escalar no puedo dibujar en el punto tocado y también dibujar menos en la pantalla, lo que da como resultado un mayor dibujo a la vista.

dibujar en el widget también es una tarea muy larga que reduce el rendimiento. por favor proporcionar cualquier forma.

y también estoy utilizando el API de nivel 10.

Edit1

amigos también. tengo una idea tengo que dibujar la ruta en diferentes niveles de zoom. entonces, si podemos calcular la relación de trayectoria en diferentes niveles de acercamiento, esto resolverá mi problema. PLZ proporcionar ayuda en consecuencia

Edit2

si seremos capaces de escalar camino entonces se puede resolver mi problema

Edit3

Creo que si nos basamos en mapa de bits que yo puede lograr mi objetivo, pero mi problema es cambiar el tamaño de mapa de bits y proporcionar desplazamiento a mapa de bits en diferentes niveles de zoom

+0

Para la panorámica, puede usar el marco de View para desplazarse. Si también quieres un desplazamiento suave, he respondido que [aquí] (http://stackoverflow.com/questions/4951142/smooth-scrolling-in-android/4951681#4951681) (si no lo haces, puedes simplemente regresar) verdadero en 'onDown()' y omita el código 'mScroller' /' onFling() '). Para el zoom, lo siento, pero lo hice solo con 'ImageView'. – bigstones

Respuesta

0

No creo que sea normal la vista se puede ampliar. Puede capturar los eventos táctiles y escalar los widgets de visualización de manera correspondiente.

+0

me puede proporcionar cualquier código de muestra –

+0

Lo que esencialmente quería decir, MarvinLabs ha señalado en detalle ... Esa es probablemente la única manera de hacerlo. – rajath

+0

acabo de editar mi pregunta, podríamos obtener una solución por este medio –

1

preguntas similares sobre SO:

se pueden hacer en nido de abeja (API lvl 11), pero no correctamente antes.

+0

pellizcos no es mi problema, pero no quiero crear vistas personalizadas. Quiero proporcionar zoom y panorámica a la vista estándar de Android –

+0

Si quiere hacerlo pellizcando o haciendo clic en un botón, la respuesta es la misma. No puedes hacerlo en API <11. –

+0

Acabo de editar mi pregunta, ¿podríamos obtener una solución a través de esta manera? –

Cuestiones relacionadas