Android 样式 :customerview的重写与继承

本文介绍如何在Android中通过自定义视图(MyView)重写view来跟踪并显示手指触摸的位置,并提供了关键代码实现及运行效果说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:本文含金量不高,仅仅能当入门的笔记


这次可以学到:1.View的重写  2.加入自己的CustomView,重写了一次view,可以更加了解github上的开源view项目 3.复习this和super


程序运行结果:跟踪手指的文字


程序代码:

为了代码更有条理性,我建议在com.example.name 的example下建立一个文件夹,叫做view(很多github上都是这个写的),新建“MyView”

package com.example.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

/**
 * Created by leon on 14/7/23.
 */
public class Myview extends View {
    //代码的关键是继承和重写
    //super和this的复习:http://blog.youkuaiyun.com/qw3752258/article/details/22616851
    //View研究不彻底,现在就完了
    public float currentX = 50;
    public float currentY = 40;
    private Paint paint = new Paint();
    //构造方法继承父类
    public Myview (Context context,AttributeSet set)
    {
        super(context,set);
    }


    @Override
    public void onDraw(Canvas canvas)
    {
        //View:protected void onDraw(android.graphics.Canvas canvas) { /* compiled code */ }
        //调用父类(View)的protect方法
        super.onDraw(canvas);
        paint.setColor(Color.BLUE);
        canvas.drawText("Hello World",currentX,currentY,paint);
    }


    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        currentX = event.getX();
        currentY = event.getY();
        //这里this是View,重新绘制
        this.invalidate();
        //处理完成,不发送广播
        return true;
    }
}

然后,在所见即所得的界面下,加入customerview就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值