2011-05-01 16 views

Respuesta

10

No necesita editar diseños en absoluto.

En ViewfinderView encuentre onDraw method. Es el núcleo el que dibuja el "rectángulo de escaneo". Puede modificarlo de la manera que desee.

El código que realmente dibuja el rectángulo se puede encontrar here:

// Draw the exterior (i.e. outside the framing rect) darkened 
paint.setColor(resultBitmap != null ? resultColor : maskColor); 
canvas.drawRect(0, 0, width, frame.top, paint); 
canvas.drawRect(0, frame.top, frame.left, frame.bottom + 1, paint); 
canvas.drawRect(frame.right + 1, frame.top, width, frame.bottom + 1, paint); 
canvas.drawRect(0, frame.bottom + 1, width, height, paint); 
+0

Quiero poner un borde a su alrededor. ¿Alguna pista sobre cómo puedo usar esto modifica el área externa que no está en el rectángulo de escaneo? ¿Cómo identificaría el área que es el rectángulo de escaneo frente a la capa exterior? También puedo configurar el diseño vertical o siempre se ejecuta horizontalmente? Gracias – Androider

+0

He agregado un enlace directo al código que es responsable del rectángulo. Puede reemplazar el código y dibujar lo que quiera en su lugar. – inazaruk

+1

Para permitir el modo vertical para la actividad del escáner, elimine 'android: screenOrientation =" landscape "' de la definición de 'CaptureActivity' en AndroidManifest ( http://code.google.com/p/zxing/source/browse/trunk/android/AndroidManifest .xml # 41). Pero recomendaría encarecidamente no hacerlo. Pruébelo usted mismo y entenderá por qué. – inazaruk

3

Here es como algunos otros en SO lo hicieron.

También mira here, parecía útil.

Finalmente, usaría this uno.

1

En realidad se puede anular el color en su propio archivo colors.xml decir

<color name="viewfinder_border">#00d1cf</color> 
Cuestiones relacionadas