记录我的第一个自定义的控件
来源:互联网 发布:兰州mac专柜 编辑:程序博客网 时间:2024/05/16 12:08
莫等闲,白了少年头,空悲切!今天开始真正的努力,不为别的,只为自己不留下---遗憾!这个第一个自己写的自定控件,基本功能实现了,有标注,欢迎大家提供宝贵意见!
package com.example.mbutton;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class myButton extends View {
//滑动部分
Bitmap slide_button;
//固定部分
Bitmap switch_background;
//画笔
Paint paint;
// 滑动部分滑动的距离
float slideLeft;
// 滑动标志
boolean isOpen = false;
//————————————————————————-
public myButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
// 创建初始化的工作
slide_button = BitmapFactory.decodeResource(getResources(),R.drawable.slide_button);
switch_background = BitmapFactory.decodeResource(getResources(),R.drawable.switch_background);
//初始化画笔
paint = new Paint();
paint.setColor(Color.GREEN);
// 设置抗锯齿,让边缘圆滑,一般都会设置
paint.setAntiAlias(true);
// 设置监听
this.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub isOpen = !isOpen; if(isOpen){ //打开状态下,滑动距离为:背景图片宽度 / 2 - 15 slideLeft = switch_background.getWidth() / 2 - 15; //强制重绘 invalidate(); }else{ //关闭状态下,滑动距离为:0 slideLeft = 0; //强制重绘 invalidate(); } } });}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //设置测量大小调用下面的方法 setMeasuredDimension(switch_background.getWidth(),switch_background.getHeight());}@Overrideprotected void onDraw(Canvas canvas) { // 画固定部分 canvas.drawBitmap(switch_background, 0, 0, paint); // 画移动部分 canvas.drawBitmap(slide_button, slideLeft, 0, paint);}
}
- 记录我的第一个自定义的控件
- 我的第一个Java代码记录
- 我自己写的第一个控件
- 【Android自定义View 一】第一个自定义的控件
- 记录我发现的第一个关于 Google 的 Bug
- 我的第一个
- 我的第一个
- 我的第一个Linux驱动hello world问题记录
- 这是我的第一个博客,记录一下日期
- Hibernate+IDEA 2017:记录我的第一个hibernate程序
- 我的第一个M-SQL自定义函数
- struts2中的我的第一个自定义标签
- 我的第一个Blog!
- 我的第一个blog
- 我的第一个Robocode
- 我的第一个GMaiL
- 我的第一个BLOG
- 我的第一个HelloWorld
- Bloom Filter概念和原理
- 棋盘问题 poj1321
- poptoviewcontroller 出栈 跳转到指定的控制器界面 遍历数组---如果跳转之前要传值的话,这个强转的过程是需要的。
- 微信企业号开发(2)--建立连接(主动)
- 【Poi2014】【BZOJ3834】Solar Panels
- 记录我的第一个自定义的控件
- iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法
- 简单集成高德地图
- Android应用安全开发之源码安全
- Adblock Plus被两大运营商部分屏蔽
- 如何理解线性代数
- 神的使者
- 讲给谁听「就你吧」
- 等待『Just Wait』