Исходники и картинки для статьи Android::Работаем с графикой
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);
}
}
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);
}
}