Android 框架 API 为不需要大动态更改的简单动画提供 2D 绘图 API。使用这些 API 有两种实现方式。
1. 绘制到视图
2. 在画布上绘制
1.画一个圆来查看
当你的UI不需要在应用程序中动态改变时,画一个来查看是一个更好的选择。这可以通过扩展 View 类并定义一个onDraw()回调方法来实现。
使用提供给您的 Canvas 进行所有绘图,
使用各种 Canvas.draw...() 方法(例如:canvas.drawCircle(x / 2, y / 2, radius, paint);)。onDraw() 是最初绘制视图时调用的回调方法。
下面是一个简单的画圆示例代码:-
MainActivity.java
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);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
int x = getWidth();
int y = getHeight();
int radius;
radius = 100;
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
canvas.drawPaint(paint);
// Use Color.parseColor to define HTML colors
paint.setColor(Color.parseColor("#FB9J2F"));
canvas.drawCircle(x / 2, y / 2, radius, paint);
}
} }
2. 在画布上绘制矩形
要在应用程序中需要定期重新绘制自身的地方绘制动态 2D 图形,在画布上绘制是更好的选择。画布作为一个界面为您工作,您将在其上绘制图形的实际表面。
如果您需要创建一个新的 Canvas,那么您必须定义实际执行绘图的位图。画布始终需要位图。
下面的例子解释了绘制一个矩形:
-activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mylayout"> </LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Paint paint = new Paint();
paint.setColor(Color.parseColor("#DD4N5C"));
Bitmap bitmap = Bitmap.createBitmap(512, 800, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawRect(150, 150, 250, 250, paint);
LinearLayout layout = (LinearLayout) findViewById(R.id.mylayout);
layout.setBackgroundDrawable(new BitmapDrawable(bitmap));
}
}