自定义控件——绘制view
2015-10-21 10:55
363 查看
MainActivity.java
package com.example.demo_cai_myview;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MyView.java
package com.example.demo_cai_myview.view;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View{
//.xml
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) { // 覆写绘图的方法
//-----------------实心矩形------------------------------------------
// 设置背景颜色
canvas.drawColor(Color.WHITE);
// 画笔
Paint paint=new Paint();
// 设置画笔为蓝色
paint.setColor(Color.BLUE);
// 画矩形
// canvas.drawRect(left, top, right, bottom, paint)
canvas.drawRect(80, 20, 160, 80, paint);
//-----------------空心矩形------------------------------------------
// 定义矩形
Rect rect=new Rect();
// 设置矩形大小
rect.set(180, 20, 300, 80);
// 画笔,空心显示
paint.setStyle(Style.STROKE);
// 画矩形
canvas.drawRect(rect, paint);
//---------------打印字----------------------------------------
paint.setColor(Color.RED);
paint.setTextSize(20);
canvas.drawText("北京北京", 5, 120, paint);
//---------------画直线----------------------------------------
// 设置画笔为黑色
paint.setColor(Color.BLACK);
// 画线
// canvas.drawLine(startX, startY, stopX, stopY, paint)
canvas.drawLine(5, 125, 400, 125, paint);
//---------------画圆--------------------------------------------
//画圆
canvas.drawCircle(30.0f, 160.0f, 20.0f, paint);
//---------------画椭圆--------------------------------------------
//定义参考矩形
RectF oval=new RectF();
//定义大小
oval.set(70.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, startAngle, sweepAngle, useCenter, paint)
canvas.drawArc(oval, 150.0f, 140.0f, true, paint);
}
}
activity_main.xml
<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"
>
<com.example.demo_cai_myview.view.MyView
android:id="@+id/myView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
相关文章推荐
- Android Studio 常用快捷键,live template,插件及其他小技巧
- java中定时任务的实现
- IM,游戏服务端 tcp 框架整理
- ssh公钥自动登陆
- 背景图片自适应大小
- JDOM 解析xml
- codeblocks主题修改(vim)
- MD设计之ToolBar
- ecplise中git的提交/更新
- Windows下的Objective-C集成开发环境(IDE)
- 二维码扫描
- [LeetCode]Maximum Depth of Binary Tree
- 有边框的EditText的高度
- 单例模式的双层锁原理
- linux .deb 包的制作
- JMX简介
- Android程序监听已知包名的APK是否运行
- 文件透明加解密的实现层次
- Maven---leaning01
- Tomcat热部署方法(3种)