Friday, October 12, 2012

2D Graphich


1.     Color
·        Màu sắc trong android được đại diện bởi 4 con số cho alpha, red, green, blue (ARGB). Mỗi thành phần có 256 giá trị ó 8 bits vì thế nó được đóng gói trong 32-bit Integer.
·        Alpha thể hiện cho độ trong suốt. Giá trị thấp nhất là 0 ó trong suốt. Giá trị lớn nhất là 255 óđục.
·        Bạn có thể tạo ra color bằng cách sử dụng các hằng số tĩnh trong lớp Color
int color = Color.BLUE;

·        Nếu bạn biết ARGB và biết con số đại diện cho blue bạn có thể dùng một hàm tĩnh của lớp Color
color = Color.argb(127, 255, 0, 255);

·        Một cách khác là định nghĩa một color trong XML resource file:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="mycolor">#7fff00ff</color>
</resources>

Bạn có thể tham chiếu color mà bạn đã định nghĩa bằng cách sử dụng java code
color = getResources().getColor(R.color.mycolor);

·        Hàm getResources() trả về một lớp ResourceManager của Activity hiện tại, và hàm getColor cho manager biết phải tìm color theo id nhận được

2.     Paint
·        Chứa style, color, và các thông tin khác cần thiết để vẽ đồ họa (bitmap, text, geometric shape).
·        Cài đặt color với phương thức Paint.setColor() ví dụ:
cPaint.setColor(Color.LTGRAY);

3.     Canvas
·        Đại diện cho mặt ngoài mà bạn sẽ vẽ trên nó.
·        Ban đầu canvas trống rỗng, các phương thức của lớp Canvas cho phép bạn vẽ các đường thẳng, hình chữ nhật, hình tròn, và các dạng hình học khác trên nó.
·        Trong Android, màn hình hiển thị là một Activity, nó làm chủ một View, View này làm chủ một Canvas. Bạn có thể vẽ trên canvas này bằng cách ghi đè phương thức View.onDraw(). Tham số duy nhất của phương thức này là một canvas mà bạn vẽ trên.Đây là một ví dụ:
public class Graphics extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphicsView(this));
}
static public class GraphicsView extends View {
public GraphicsView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
// Drawing commands go here
}
}
4.     Path
·        Lớp Path dữ một tập hợp vector-drawing cammand như các đường thẳng, hình chữ nhật, đường cong. Dươi đây là một ví dụ định nghĩa một đường tròn:
circle = new Path();
circle.addCircle(150, 150, 100, Direction.CW);

Nó sẽ tạo ra một đường tròn tại tọa độ x = 150, y = 150 với bán kính là 100 px. Tiếp theo chúng ta sẽ sử dụng path này để vẽ một đường tròn bên ngoài và thêm một số chữ xung quan bên trong
private static final String QUOTE = "Now is the time for all " +
"good men to come to the aid of their country." ;
canvas.drawPath(circle, cPaint);
canvas.drawTextOnPath(QUOTE, circle, 0, 20, tPaint);

5.     Drawable
·        Lớp Drawable được sử dụng cho một phần tử nhìn thấy giống như bitmap hoặc solid color được dùng chỉ để hiển thị.
·        Bạn có thể kết hợp drawable với các graphic khác, hoặc có thể sử dụng chúng trên user interface widgets (background, button, view…)
·        Dawable nhận một sự đa dạng của các form:
o   Bitmap: PNG, JPEG image
o   NinePatch: một PNG có thể kéo dài. Nó được chia ra làm 9 phần. Được sử dụng làm background của resizable bitmap button.
o   Shape: Vector-drawing cammand, dựa trên lớp Path.
o   Layers: Một container cho các child drawable mà vẽ trên cũng của child khác theo z-order.
o   States: Một container mà show một trong các drawables của nó dựa trên trạng thái của nó (một bit mask). Một cách sử dụng khác là để thiết lập các tùy chọn khác nhau và focus các trạng thái cho các button.
o   Levels: Một container chỉ show duy nhất một trong các child drawable của nó dựa trên level của nó (Một phạm vi của số nguyên). Có thể sử dụng cho pin và tín hiệu kế.
o   Scale: Một container cho một child drawable mà có thế hiệu chỉnh kích thước của nó dựa trên level hiện hành. Sử dụng cho zoomable picture viewer.

No comments:

Post a Comment