Graphics


Graphics

An easy way to perform custom drawing in Android is extending an Android View (android.view.View) and overriding the onDraw method. Because of hardware limitations, it is very important to keep the onDraw method simple, for instance instead of having local variables in this method(that are called every time the method is called), you may use member variables. Note that Android does not support Java Swing neither Java AWT.
Una forma fácil de realizar pintando personalizado en Android es extendiendo una vista de Android (android.view.View) y sobre-escribiendo el método de onDraw. Debido a las limitaciones de hardware, es muy importante mantener el método de onDraw simple, por ejemplo en lugar de usar variables locales (que se crean cada vez que el método es llamado) en este método, usted puede usar variables miembro. Observe que Android no soporta Java Swing ni Java AWT.

Canvas (android.graphics.Canvas)

A Canvas object is passed to the onDraw method called to perform all drawing. This object includes a set of drawing functions, such as: clipPath, clipRect, clipRegion, drawArc, drawBitmap, drawCircle, drawColor, drawLine, drawLines, drawOval, drawPaint, drawPath, drawPicture, drawPoint, drawRect, drawRoundRect, drawText, etc.
Un objeto Canvas se pasa a la llamada del método onDraw para realizar todo el pintado. Este objeto incluye un conjunto de funciones, tales como: clipPath, clipRect, clipRegion, drawArc, drawBitmap, drawCircle, drawColor, drawLine, drawLines, drawOval, drawPaint, drawPath, drawPicture, drawPoint, drawRect, drawRoundRect, drawText, etc.

Problem 1
Create an Android application called BlueAnd to draw a blue circle in the center of the application. Create an application as usual using a "Blank Activity", then, edit the file: MainActivity.java and activity_mail.xml as shown below (delete the TextView element from the file activity_mail.xml). DO NOT check AppCompatActivity when creating the project.
Cree una aplicación para Android llamada BlueAnd para dibujar un círculo azul en el centro de la aplicación. Cree una aplicación en forma usual usando una "Blank Activity", entonces, edite los archivos: MainActivity.java y activity_mail.xml como se muestra debajo (elimine el elemento TextView del archivo activity_mail.xml). NO marque la opción de AppCompatActivity al crear el proyecto.

activity_main_xmlRun

activity_main_xml

MainActivity.java
package com.selo.blueand;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity
{
     @Override
     public void onCreate(Bundle savedInstanceState)
     {
          super.onCreate(savedInstanceState);
          setContentView(new MyView(this));
     }

     public class MyView extends View
     {
          public MyView(Context context)
          {
               super(context);
          }
          int radius = 0;

          @Override
          protected void onDraw(Canvas canvas)
          {
               super.onDraw(canvas);
               //____________________________________ Background and Paint Object
               Paint paint = new Paint();
               paint.setStyle(Paint.Style.FILL);
               paint.setColor(Color.WHITE);
               canvas.drawPaint(paint);
               //____________________________________Draw a Blue Circle
               paint.setColor(Color.parseColor("#0000FF"));
               canvas.drawCircle(getWidth() / 2, getHeight() / 2, radius, paint);
          }

          @Override
          protected void onSizeChanged(int width, int height, int old_width, int old_height)
          {
               super.onSizeChanged(width, height, old_width, old_height);
               //____________________________________ Calculate Circle Radius
               final int circle_width = (int)(0.4*width + 0.5);
               final int circle_height = (int)(0.4*height + 0.5);
               radius = circle_width > circle_height ? circle_height : circle_width;
          }
     }
}


Problem 2
Create an Android application called SpiderAnd to create an application that displays the pattern shown. Use the getWidth() and getHeight() methods to know the size of the view. You may use the methods: paint.setAntiAlias and paint.setDither to improve the quality of the lines. DO NOT check AppCompatActivity when creating the project.
Cree una aplicación para Android llamada SpiderAnd para crear una aplicación que muestre el patrón mostrado. Use los métodos getWidth() and getHeight() para conocer el tamaño de la vista. Usted puede usar los métodos: paint.setAntiAlias y paint.setDither para mejorar la calidad de las líneas. NO marque la opción de AppCompatActivity al crear el proyecto.

SpiderAndRun

Problem 3
Create an Android application called SwededAnd to create an application that displays the flag of Sweden. DO NOT check AppCompatActivity when creating the project.
Cree una aplicación para Android llamada SwedenAnd para crear una aplicación que muestre la bandera de Suecia. NO marque la opción de AppCompatActivity al crear el proyecto.

SwedenAndRun

Problem 4
Create an Android application called TargetAnd to create an application that displays a target.
Cree una aplicación para Android llamada TargetAnd para crear una aplicación que muestre un tiro al blanco.

TargetAndRun

Problem 5
Create an Android application called EvenOddAnd to create an application with a list of even and odd numbers as shown. You may use the method paint.measureText to know the width of a specific text. DO NOT check AppCompatActivity when creating the project.
Cree una aplicación para Android llamada EvenOddAnd para crear una aplicación con la lista de los números pares e impares como se muestra. Usted puede usar el método paint.measureText para conocer el texto de un texto específico. NO marque la opción de AppCompatActivity al crear el proyecto.

EvenOddAndRun

MainActivity.java
package com.selo.evenoddand;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity
{
     @Override
     public void onCreate(Bundle savedInstanceState)
     {
          super.onCreate(savedInstanceState);
          setContentView(new MyView(this));
     }

     public class MyView extends View
     {
          Typeface font = null;
          final float fontSize = 44.0f;
          public MyView(Context context)
          {
               super(context);
               //___________________________________ Create Font
               font = Typeface.create("Arial", Typeface.NORMAL);
          }

          @Override
          protected void onDraw(Canvas canvas)
          {
               super.onDraw(canvas);
               //____________________________________ Paint Object
               ...
               // Set font and font size
               paint.setTypeface(font);
               paint.setTextSize(fontSize);
               canvas.drawPaint(paint);
               final int offset = (int)paint.measureText(" XX ");
               //
               ...

               for(int i = 0; i < 23; i++)
               {
                    ...
               }
          }
     }
}


Problem 6
Create an Android application called UnitedStates to display the flag of the United States. DO NOT check AppCompatActivity when creating the project.
Cree una aplicación para Android llamada UnitedStates para mostrar la bandera de los Estados Unidos. NO marque la opción de AppCompatActivity al crear el proyecto.

UnitedStatesRun

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home