2024年Android最新安卓自定义 画一个动态显示盘(2),吊打面试官 redis

【附】相关架构及资料

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

绘制文字。中间现实数据名字,我设为湿度

//绘制文字

paint.setStyle(Paint.Style.FILL );

canvas.drawText(“湿度”,getWidth()/2-80,R1+50,paint);

在这里插入图片描述

效果;

在这里插入图片描述

package com.blithelee.mvvmactivity.CircleShow;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.icu.util.Measure;

import android.os.Handler;

import android.os.Message;

import android.util.AttributeSet;

import android.view.View;

import androidx.annotation.Nullable;

public class CircleShowView extends View {

private static float R1=300;

private static float paint_width=50;

private static float Margin_top=50;

private static float angle_start=-90;

private static float angle_end=120;

private static float wshidu=50;

RefreshThread refreshThread=new RefreshThread();

private Path CirclePross=new Path();

Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);

public CircleShowView(Context context, @Nullable AttributeSet attrs) {

super(context, attrs);

}

{

paint.setTextSize(100);

new Thread(new Runnable() {

@Override

public void run() {

while (true){

Message message=new Message();

message.what=0x101;

message.obj=getData();

refreshThread.handleMessage(message);

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

//绘制一个环

paint.setColor(Color.parseColor(“#c4c4c4”));

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(paint_width);

canvas.drawCircle(getWidth()/2,R1+Margin_top,R1,paint);

//绘制环形进度条

paint.setColor(Color.BLUE);

paint.setStrokeCap(Paint.Cap.ROUND);//设置画笔圆头

canvas.drawArc(getWidth()/2-R1,Margin_top,getWidth()/2+R1,

2*R1+Margin_top,angle_start,angle_end,false,paint);

//绘制文字

paint.setStyle(Paint.Style.FILL );

canvas.drawText(“湿度”,getWidth()/2-80,R1+50,paint);

}

class RefreshThread extends Handler {

@Override

public void handleMessage(Message msg) {

if(msg.what==0x101){

总结

这次面试问的还是还是有难度的,要求当场写代码并且运行,也是很考察面试者写代码
因为Android知识体系比较庞大和复杂的,涉及到计算机知识领域的方方面面。在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值