zoukankan      html  css  js  c++  java
  • 从头学起android<android基本的绘图.四十六.>

    在一般的图形渲染用户通常只需要重写onDraw()该方法可以是。但是假设,才能真正完成绘图操作。此外,我们需要掌握的四大核心经营类:
    android.graphics.Bitmap:主要表示的是一个图片的存储空间。所包括的图片能够来自于文件或由程序创建;
    android.graphics.Paint:基本的画图工具类,能够指定画图的样式;
    android.graphics.Canvas:是一个操作画图以及Bitmap的平台,相当于提供了一个画板的功能,在onDraw()方法的參数中也定义了此类型的參数,能够依靠此类完毕详细的画图操作。
    android.graphics.drawable.Drawable:绘制图形的公共父类,能够绘制各种图形、图层等。



    自己定义MyView组件

    <span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        
        tools:context=".MainActivity" >
    
        <com.example.paintpic.MyView
            android:id="@+id/Myview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    ></com.example.paintpic.MyView>
    </LinearLayout>
    </span>

    主界面
    <span style="font-size:18px;">package com.example.paintpic;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
        
    }
    </span>

    MyView设置
    <span style="font-size:18px;">package com.example.paintpic;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.RectF;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class MyView extends View {
    
    	public MyView(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	protected void onDraw(Canvas canvas) {
    		// TODO Auto-generated method stub
    		// canvas是画板对象,背景是白色的
    		canvas.drawColor(Color.WHITE);
    		// paint画笔工具
    		Paint paint = new Paint();
    		// 设置画笔颜色为蓝色
    		paint.setColor(Color.BLUE);
    		// 为画板上画圆。圆心(50,50)半径50
    		canvas.drawCircle(50, 50, 50, paint);
    		// 设置画笔颜色的颜色为红色
    		paint.setColor(Color.RED);
    		// 画矩形
    		canvas.drawRect(100, 0, 160, 80, paint);
    		// 画笔颜色为绿色
    		paint.setColor(Color.GREEN);
    		// 画直线
    		canvas.drawLine(50, 110, 200, 110, paint);
    		paint.setColor(Color.YELLOW);
    		// Rect rect=new Rect(120, 120, 300, 300);
    		// canvas.drawRect(rect, paint);
    
    		// 使用RectF画多边形
    		RectF oval = new RectF();
    		oval.set(10.0f, 140.0f, 110.0f, 200.0f);
    		canvas.drawOval(oval, paint);
    
    		oval = new RectF();
    		oval.set(150.0f, 140.0f, 210.0f, 200.0f);
    		canvas.drawArc(oval, 150.0f, 140.0f, true, paint);
    	}
    }
    </span>

    使用Canvas和point组件能够绘制出各种各样的图形,多用于游戏的开发。感兴趣的朋友能够自己了解

    根据第预测:bitmap图形组件

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    UVA 10608 Friends
    UVA 10806 Dijkstra, Dijkstra.
    HDU 3715 Go Deeper
    poj1315
    poj1383
    poj1650
    poj1265
    poj1523
    RedHat9.0虚拟机安装
    注册DirectShow filter时应该注意中文路径
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4628322.html