Color de fondo de relleno de lienzo de Android (aplicación de lona)
Al tener los siguientes códigos, tengo algunas preguntas.
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView( new View(this) { Paint mPaint = new Paint(); @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); int width = this.getWidth(); int height = this.getHeight(); int radius = width > height ? height/2 : width/2; int center_x = width/2; int center_y = height/2; // prepare a paint mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(5); mPaint.setAntiAlias(true); // draw a rectangle mPaint.setColor(Color.BLUE); mPaint.setStyle(Paint.Style.FILL); //fill the background with blue color canvas.drawRect(center_x - radius, center_y - radius, center_x + radius, center_y + radius, mPaint); // draw some text and rotation mPaint.setTextSize(50); mPaint.setTextAlign(Paint.Align.CENTER); mPaint.setColor(Color.BLACK); canvas.drawText( "Hello World" , center_x , center_y, mPaint); } }); } }
- Android: El tamaño de la vista previa de la cámara admitida es incorrecto
- Cómo adjuntar MediaPlayer con SurfaceView en android?
- Android: toma fotos sin vista previa
- No se puede mostrar 2 instancias de mi SurfaceView personalizado
- Comprensión de los conceptos de lienzo y superficie
P1: ¿Cómo puedo llenar el color azul en el marco? (Las palabras siguen apareciendo)
P2: ¿Cuántas vistas y superficies hay en esta aplicación? ¿Cómo puedo contar esto en la aplicación?
P3: ¿Cuántas ventanas hay en esta aplicación?
Q4: En el código, no veo ningún objeto de mapa de bits en él. Sin embargo, pensé que el mapa de bits es el objeto que realmente puedo dibujar cosas en él. ¿Mi comprensión es incorrecta? Una posibilidad es que el constructor de Canvas inicialice el mapa de bits cuando se vuelve a crear.
P5: Sabía que estas cosas gráficas finalmente irán a la superficie y luego pasar a surfaceflinger para la composición final. ¿Dónde se encuentra en mi código?
Gracias por cualquier respuesta.
- ¿Por qué onTouchEvent de SurfaceView llamado unos segundos retrasados?
- Android Take Captura de pantalla de Vista de superficie muestra negro
- Android glSurfaceView con superposición con XML / Java
- Vista previa de Android SurfaceView borrosa
- Tome fotos sin previsualizar Android
- Obtener información de GPU en Android sin SurfaceView
- Android: dibujo en un nuevo lienzo
- Uso de la API de la cámara android para mostrar la alimentación de la cámara
Cinco preguntas. Veamos dónde puedo ayudar.
P1: Dile a la Paint
que llene el rectángulo: paint.setStyle(Paint.Style.FILL);
P2: sólo veo la única vista que cree mediante programación. ¿Por qué le gustaría contar las opiniones?
P3: Otra vez: Uno
Q4: Dibuja un bitmaps mutable por envolverlos con un Canvas
. El método para dibujar son parte de Canvas
Q5: El código que muestra es parte de una actividad. La actividad es llamada por Android. Es tu punto de entrada en tu aplicación.
Gracias por la respuesta. Hice el trabajo de hacer el código para la respuesta marcada, y trabaja.
Bitmap bg = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bg); // paint background with the trick Paint rect_paint = new Paint(); rect_paint.setStyle(Paint.Style.FILL); rect_paint.setColor(Color.rgb(0, 0, 0)); rect_paint.setAlpha(0x80); // optional canvas.drawRect(0, 0, width, height, rect_paint); // that's painting the whole canvas in the chosen color.
P2: El Visor de Jerarquía es muy útil cuando quieres contar cuántas vistas en tu aplicación. Optimización de la interfaz de usuario
- Implementar Google Analytics para las pantallas de juegos Android LibGDX
- ¿Cómo mostrar sólo imágenes de memoria caché en ViewPager con Universal Image Loader Android?