Работаем с графикой

Исходники и картинки для статьи Android::Работаем с графикой

SimplePaintActivity.java


package ru.alexanderklimov.simplepaint;

import android.app.Activity;
import android.os.Bundle;

public class SimplePaintActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Draw2D d = new Draw2D(this);
        setContentView(d);
        //setContentView(R.layout.main);
    }
}

Draw2D.java


package ru.alexanderklimov.simplepaint;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;

public class Draw2D extends View{
    public Draw2D(Context context) {
	        super(context);
	}  
	@Override
	protected void onDraw(Canvas c){
	    super.onDraw(c);
	    
	    Paint paint = new Paint();
	    paint.setStyle(Paint.Style.FILL);

	    // закрашиваем холст белым цветом
	    paint.setColor(Color.WHITE);
	    c.drawPaint(paint);
	    
	    // Рисуем желтый круг
	    paint.setAntiAlias(true);
	    paint.setColor(Color.YELLOW);
	    c.drawCircle(450, 30, 25, paint);
	    
	    // Рисуем зеленый прямоугольник
	    paint.setColor(Color.GREEN);
	    c.drawRect(20, 200, 460, 230, paint);
	    
	    // Рисуем текст
	    paint.setColor(Color.BLUE);
	    paint.setStyle(Paint.Style.FILL);
	    paint.setAntiAlias(true);
	    paint.setTextSize(30);
	    c.drawText("Лужайка для котов", 30, 200, paint);
	    
	    // Текст под углом
	    int x = 310;
	    int y = 190;
	     
	    paint.setColor(Color.GRAY);
	    paint.setTextSize(25);
	    String str2rotate = "Лучик солнца!";

	    // Создаем ограничивающий прямоугольник для наклонного текста
	    Rect rect = new Rect();

	    // поворачиваем холст по центру текста
	    c.rotate(-45, x + rect.exactCenterX(), y + rect.exactCenterY());

	    // Рисуем текст
	    paint.setStyle(Paint.Style.FILL);
	    c.drawText(str2rotate, x, y, paint);

	    // восстанавливаем холст
	    c.restore();
	    
	    // Выводим значок из ресурсов
	    Resources res = this.getResources();
	    Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.icon);
	    c.drawBitmap(bitmap, 415, 655, paint);
	}
}

Рисунки

Работаем с графикой