【转】android UI 相关常用类简介

Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)... 当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易。其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件。 一:Android用户界面布局管理 Android系统按照MVC(模型(model)-视图(view)-控制器(controller))设计模式将应用程序的界面设计与功能控制设计分离,类似于... 阅读详情
一、Canvas类android.graphics.Canvas 

Canvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像。一般我们用android来绘画的时候,需要四个组成部分: 
1、位图:包含像素 
2、Canvas画板:包含绘画内容,写入位图 
3、初始图形:如Rect、Bitmap、text等 
4、Paint:用来描述上面初始图形的颜色和类型等 
Canvas类提供了三个构造方法: 
Public Canvas();构造一个默认无参的Canvas对象 
Public Canvas(Bitmap bitmap);根据一个Bitmap构造一个Canvas对象 
Public Canvas(GL gl);根据一个GL来构造一个对象 
下面我们来了解一下Canvas类提供的方法: 
在Canvas类提供的方法中比较多经常用的是以draw开头的方法,draw开头的方法很容易理解就是向画板中画图形,比如可以向Canvas中画位图,给图形填充颜色等。 


二、Paint类android.graphics.Paint
 

Paint类包含有用来画几何图形、文本、位图的类型和颜色等信息,如果把Canvas类看作是画板,那我们可以把Paint类看做是画笔,可以根据需要画出不同颜色和样式的图形、文本等内容。 
Paint类有三个构造方法: 
Public Paint()构造一个缺省的Paint对象 
Public 
Paint(int flags);根据指定的flags来构造一个Paint对象,创建之后可以用 
setFlags()方法来更改 
Public Paint(Paint paint)根据指定的paint对象来构造一个Paint对象 
Paint类提供了很多方法来设置和获取Paint对象的属性,比如: 
public int getColor ()获得Paint对象的颜色值 
public ColorFilter getColorFilter ()获得颜色过滤器 
public float getTextSize ()获得字体大小数值 
public void setStyle (Paint.Style style)设置paint的类型 

三  Color类android.graphics.Color
 

此类 定义了一些方法来创建和转换颜色值。颜色被表示为封装的数值,这个数值由四个字节组成,分别是:alpha、red、green、blue,这些值是非自 左乘的,也就是说任何透明性只存储在alpha部分,而不是在颜色组成部分。每一部分按照如下的顺序保存:(alpha<<24)| (red<<16)|<green<<8)|blue.每一部分的取值范围在0-255之间,0意味着这部分不起作 用,255表示100%的起作用。因此不透明的黑色应该是0xFF000000,不透明的白色应该是0xFFFFFFFF 。 
Color类提供了12个常量值来代表不同的颜色值,我们在开发工程中可以直接调用这些常量值来设置我们所要修饰的文本、图形等对象。 
Color类提供了一个无参的构造方法Color() 
Color类提供了一些方法来进行颜色值的创建和转换如下: 
其中三个方法是用来返回一个颜色常量值的红绿蓝分色,数值分别在0-255之间,如下: 
Public static red(int color); 
Public static green(int color); 
Public static blue(int color); 
其中Public static int rgb(int red,int green,int blue);输入红绿蓝三色,返回一个RGB颜色值。 
下面几个方法大家可以参考Android API来了解: 
Public static int HSVToColor(int alpha,float[] hsv); 
Public static int HSVToColor(float[] hsv); 
Public static void RGBToHSV(int red,int green,int blue,float[] hsv); 
Public static int alpha(int color); 
Public static int argb(int alpha,int red,int green,int blue); 
Public static colorToHSV(int color,float[] hsv); 
Public static parseColor(String colorString); 



四.Typeface类android.graphics.Typeface 

Typeface类定义字体和字体内在的类型。这个类被用在画笔Paint设置的时候,比如用textSize,textSkewX和textScale设置来指定text在画的时候如何来显示和测量。 

Typeface 提供了一些常量值来表示自身的一些属性,比如BOLD,BOLD_ITALIC,ITALIC等,开发者可以用 defaultFrOPhone SDNtyle(int style)获得内在的Typeface对象。读者可以参考详细的API文档再这里就不再赘述了。 

下面我们来看一下Typeface的主要方法。 

Typeface类没有构造方法,通常如果一个类没有构造函数就无法通过构造来生成一个对象实体,此时一般会有特定的静态方法来取得这个类的实体。Typeface就提供了四个静态方法间接来得到Typeface实体分别如下: 

Public static Typeface create(Typeface family,int style); 

此方法返回一个与已经存在的Typeface字形体系相匹配且类型是指定类型的Typeface。如果你想得到一个与已经存在的Typeface字形体系 相类似,但是样式不一样的Typeface时可以调用此方法。其中family参数可以为null,如果为空则表示从默认的Typeface字形体系中选 择。 

Public static Typefaxe create(String familyname,int style); 

此方法通过给定的字形体系的名称familyname和指定的类型返回一个Typeface对象。如果给定字形体系的名称为null,我们可以通过getStyle()方法来获得返回Typeface对象的真正的属性。 

Public static Typeface createFromAsset(AssetManager mgr,String path); 

此方法通过规定的字体数据来返回一个Typeface对象。第一个参数为资源管理器,第二个参数是指定字体类型。 

Public static Typeface defaultFrOPhone SDNtyle(int style);此方法返回一个指定类型的Typeface对象 

Typeface还提供了另外三个方法: 

Public int getStyle();此方法返回Typeface内在的类型属性 

Public final Boolean isBold();如果getStyle()有BOLD位组将返回true 

Public final Boolean isItalic();如果getStyle()有ITALIC位组将返回true 

五、Path类android.graphics.Path
 

Path类(一组区域)的描画,类囊括多种几何图形比如直线线段、二次曲线、三次曲线等, 

调用Canvas.drawPath()方法可以将Path以所定义的paint的方式来画到画板上或者填出图形,也可以用paint所指定方式来画图形。 

六、RectF类android.graphics.RectF和Rect类android.graphics.Rect 

RectF 这个类包含一个矩形的四个单精度浮点坐标。矩形通过上下左右4个边的坐标来表示一个矩形。这些坐标值属性可以被直接访问,用width()和 height()方法可以获取矩形的宽和高。注意:大多数方法不会检查这些坐标分类是否错误(也就是left<=right和top& lt;=bottom). 

RectF一共有四个构造方法: 

RectF()构造一个无参的矩形 

RectF(float left,float top,float right,float bottom)构造一个指定了4个参数的矩形 

RectF(Rect F r)根据指定的RectF对象来构造一个RectF对象(对象的左边坐标不变) 

RectF(Rect r)根据给定的Rect对象来构造一个RectF对象 

RectF提供了很多方法,下面介绍几个方法: 

Public Boolean contain(RectF r);判断一个矩形是否在此矩形内,如果在这个矩形内或者和这个矩形等价则返回true,同样类似的方法还有public Boolean contain(float left,float top,float right,float bottom)和public Boolean contain(float x,float y)。 

Public void union(float x,float y)更新这个矩形,使它包含矩形自己和(x,y)这个点。 

RectF类提供的方法都比较简单,容易理解,再此就不再一一赘述 

Android.graphics.Rect类,这个类同android.graphics.RectF很相似,不同的地方是Rect类的坐标是用整形表示的,而RectF的坐标是用单精度浮点型表示的。这里大家一定要注意 啊。 

七、Point类android.graphics.Point 

    这个类从字面意思就可以看出它跟点有关系,是点的一个对象类。 

这个类有两个属性,分别是:X坐标和y坐标。 

构造函数有三个:Point(),Point(int x,int y),Point(Point p) 

主要方法有: 

Public void set(x,y);重新设定一下x,y的坐标 

Public final void offset(int dx,int dy);给坐标一个补偿值,值可以使正的也可以是负的。 

Public final void negate();否定坐标值。 

Point类和android.graphics.PointF类似,不同点是前者坐标值的类型是int型,而后者的坐标值是float型。除此之外PointF类多加了几个方法,比如: 

Public final float length();返回(0,0)点到该点的距离。 

Public static float length(float x,float y);返回(0,0)点到(x,y)点的距离。 
   
   E文不好。留着以后自己查阅。
Android Studio用户界面设计 最近在上《移动计算》这门课,主要讲述利用Android studio软件进行安卓开发,目前只是刚开始接触这个模块,所以从简单基础的内容入手,此次将讲述如何进行简单的用户界面设计: 我是直接更改activity_main.xmlactivity\_main.xmlactivity_main.xml文件的内容来实现的,也可以直接在MainActivity.javaMainActivity.javaM... 阅读详情

相关推荐

安卓重要UI组件之 Fragment

安卓重要UI组件之 Fragment

安卓开发&音视频开发 7428

轉載 :【转】android UI 相关常用类简介

一、Canvas类android.graphics.Canvas Canvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像。一般我们用android来绘画的时候,需要四个组成部分: 1、位图:包含像素 2、Canvas画板:包含绘画内容,写入位图 3、初始图形:如Rect、Bitmap、text等 4、Paint:用来描述上面初始图形的颜色和类型等 Canvas类提供了三个构造方法:

Jason_WKS的专栏 862

使用UI Automator Viewer工具来分析和查看Android用户界面

通过使用UI Automator Viewer,您可以捕捉应用程序的界面截图,并查看元素的属性以及它们在布局中的层次结构。通过使用UI Automator Viewer,您可以捕捉应用程序的界面截图,并查看元素的属性以及它们在布局中的层次结构。您可以在左侧的"Device Screenshots"窗格中查看屏幕截图,而右侧的"UI Automator Dump"窗格则显示了界面布局的分层结构。捕捉界面截图:在UI Automator Viewer界面中,点击工具栏上的相机图标,捕捉当前设备屏幕的截图。

WwxActionscript的博客 1545

安卓Android 架构模式及UI布局设计

界面设计与程序逻辑分离:有利于并行安卓中的架构模式 **优势:** 1. 设计可扩展的应用程序,方便进行未来的更改和更新。 2. 实现模块化设计,提高代码质量,便于测试和维护。开发,后期修改界面时不需修改程序逻辑代码。设计模式MVC、MVP、MVVM

m0_74154295的博客 3918

uniapp开发安卓app使用文字转语音技术

在 UniApp 开发安卓应用时,要实现文字转语音(Text-to-Speech, TTS)技术,你可以利用 UniApp 的跨平台能力结合原生模块或第三方服务来实现。

qq_40358970的博客 5967

安卓测试避错!常见的Appium相关问题及解决方案

安卓测试中Appium工具常见的问题以及解决方法,建议收藏。

rjcs666的博客 7791

android UI 相关常用类简介

原文网址:http://byandby.iteye.com/blog/826304 android UI 相关常用类简介 一、Canvas类android.graphics.Canvas  Canvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像。一般我们用android来绘画的时候,需要四个组成部分:  1、位图:包含像素  2、Canvas画板:

H_O_W_E的专栏 880

避坑指南:英飞凌TC3XX的MCMCAN初始化常见错误及解决方法

本文针对英飞凌TC3XX系列MCU的MCMCAN模块初始化难题,深入剖析了寄存器配置时序、总线监控模式误用、中断映射错误及Message RAM地址冲突四大常见陷阱。通过实战代码示例和诊断流程,提供了清晰的避坑指南和解决方案,帮助嵌入式开发者高效解决CAN FD通信故障,确保汽车电子与工业控制项目的稳定运行。

weixin_29193259的博客 246

【Qt】跨平台UI布局,以Windows + Android安卓为例

Qt跨平台开发时,为不同平台设置不同UI布局是基础。那么该如何实现呢?本文介绍Qt Designer和纯代码两种方式

csdnofhaner的博客 3861

多模态模型评测神器 | OpenCompass MMBench 了解一下!

MMBench 是 OpenCompass 研究团队自建的视觉语言模型评测数据集,可实现从感知到认知能力逐级细分评估。研究团队从互联网公开信息与权威基准数据集采集约 3000 道单项选择题 ,覆盖目标检测、文字识别、动作识别、图像理解、关系推理等 20 个细粒度评估维度。

OpenCompass的博客 7826

山景BP10_128DBG开发板ADC_Key驱动

最近在学习山景BP10_128DBG开发板,想使用开发板上的按键。看了看原理图和之前用过的按键好像有点不一样。常见的按键都是判断IO口是否被拉低或拉高来判断按键是否被按下。山景BP10_128DBG开发板上的按键是ADC按键,每个按键按下之后ADC的采样值是不同的,通过ADC采样回来的值进而判断哪个按键按下。这种方式核心思想就是用一个ADC通道来节约IO口,对于IO紧张的芯片是一个不错的解决思路。

weixin_56646002的博客 1311

车牌识别项目:yolov5转onnx转ncnn部署安卓

由于网上的车牌模型已经有很多,但是对于某些自己特定的场景的图片,可能没有很好的数据集,所以可以将这些模型拿自己的数据集再次进行训练,但是训练后的部署又是一个问题本文章用于记录yolov5模型进行一系列的转换最后部署安卓的学习笔记。

a1574300748的博客 2632

Tesla V100 Windows 部署实战:从驱动安装到模式切换的避坑指南

本文是一份详细的Tesla V100在Windows系统下的部署实战指南。文章从硬件组装、系统选择讲起,重点阐述了驱动安装的正确方法,并深入剖析了将计算卡从TCC模式切换至WDDM模式的诱惑与潜在陷阱。最终,作者推荐保持默认TCC模式,并提供了使用nvidia-smi命令行等稳定可靠的显卡监控方案,旨在帮助用户避开常见坑点,高效利用这张专业计算卡进行AI计算等任务。

java5的博客 1711

(8 Android) 用户界面UI设计

(8 Android) 用户界面UI设计 3.1.1 Android界面视图类 Android 图形化的用户界面(Graphical User Interface , GUI) 采用了结构清晰的MVC模型(Model-View-Controller) ,其具体含义: ·提供了处理用户输入的控制器(Controller) ; ·显示用户界面的视图(View) ; ·保存数据和代码的模型(Model)...

chenhanhao0000的博客 425

MAS1102量产工具实战指南:从下载到开卡,附固件选择与RDT优化技巧

本文提供MAS1102量产工具的实战指南,涵盖从工具下载、短接识别到开卡操作的全过程。重点解析了固件选择策略与RDT优化技巧,帮助用户成功修复基于联芸MAS1102主控的固态硬盘,解决常见开卡错误并提升SSD性能与稳定性。

c2d3e4f的博客 2208

Excel VBA | 一键批量生成对账单

根据对账单总表一键批量生成N家独立的客户对账单。

Microgoblins的博客 6985

Android UI自动化测试框架—SoloPi简介

软件测试简介​软件测试是伴随着软件开发一同诞生的,随着软件规模大型化,结构复杂化,软件测试也从最初的简单“调试”,发展到当今的自动化测试。​ 自动化测试是什么呢?自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试通常会借助某些工具或者框架。虽然不能完全取代手工测试,但相比手工测试来讲,自动化测试可以减少人力成本,降低重复工作,从而更快速、高效的进行测试活动。测试金字塔是一种自动化测试过程的金字塔形策略结构,用来指导软件开发过程。

2401_83387413的博客 897

Agent 智能体学习指南:从入门到求职的完整路线

AI Agent 不是更长的 prompt,而是一类系统设计——模型在受控环境里观察状态、选择动作、调用工具、接收反馈。本文系统梳理 Agent 的 5 个核心概念、7 个关键模块(Goal/State/Context/Tools/Loop/Guardrails/Eval)、三条学习路线(工程落地/研究算法/求职作品)、框架选型策略(LangGraph/OpenAI Agents SDK/Pydantic AI 等场景推荐),以及可执行的 7 天最小项目计划(从概念到简历 bullet)。

program哲学 229

Android类库常用类库一览

Android类库常用类库一览 在Android SDK中包括很多包文件,通过了解这些包的功能也有助于了解可以开发的功能。 在Android类库中,各种包写成android.*的方式,重要包的描述如下所示: android.app :提供高层的程序模型、提供基本的运行环境 android.content 包含各种的对设备上的数据进行访问和发布的类 android.database :通过内容提供者...

qq_42281792的博客 2065

用C#+Avalonia写跨平台串口工具:Windows/macOS/Linux通吃,还能解析Modbus+画实时曲线

不管是串口还是蓝牙,核心操作都是“打开连接、发数据、收数据、关连接”,先定义一个// 通信设备接口:统一串口/蓝牙的操作// 连接状态变化事件(UI层订阅)// 接收数据事件(收到数据后触发)// 通信配置(不同设备配置不同,用泛型)// 通信设备接口:统一串口/蓝牙的操作 public interface ICommDevice : IDisposable {// 连接状态变化事件(UI层订阅) event Action < bool > OnConnectionChanged;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 999

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓ui XML布局简介

概述   布局(Layout)的概念是针对Activity的,Activity就是布满整个Android设备的窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,每个需要显示的Activity都需要在AndroidManifest.xml文件之中声明。   通常情况下,开发人员可以使用两种方式来创建UI组件,一种方式是使用XML方式来配置UI组件的相关属性,然后装载这些UI组件,这也是最常用的方式。但是有些特殊情况下,需要动态生成UI组件,则需要使用第二种方式,完全使用Jav

asdxcx的博客 960

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android 主界面 布局,Android用户界面与View/ViewGroup

在介绍Android中的布局问题之前,不得不先介绍一下Android中的用户界面,因为布局问题也是用户界面问题之一。在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种Views和ViewGroups,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。View很重要,很多控件都继承自它。View类:extends...

weixin_29017445的博客 2012

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android最全UI库合集_android ui库

通知 聊天视图 Header 引导图(Intro) 图片 徽章(Badge) RatingView 滚动效果(Scroll) 时间轴 TreeView SearchView TagView TextView EditText Sliding 表单 分段控件 轮播图 文件操作 启动页 MD BottomNavigation Toast CreditCard ActionSheet Wave Snackbar 用户引导 Popup 滑动返回 TV组件 软键盘 状态栏 StepView 表格(Table) 滚动

2401_89285701的博客 6988

安卓 UI 开发实用指南(一)

用户界面是任何现代移动应用程序最重要的单一方面。它们是您与用户的主要接触点,良好的用户界面可能是应用程序成功与失败的区别。本书将引导您走向用户界面卓越之路,教授您优秀的 Android 用户界面设计技巧,并展示如何实现它们。构建用户界面全部是为了用户,并使他们的生活变得更简单。用户界面帮助用户在应用程序中实现目标而不分散他们的注意力是很重要的。这意味着每个屏幕都必须有一个目的,每个小部件都必须在其屏幕位置上发挥作用。很少使用的小部件是干扰,应该从应用程序中移除或删除。

龙哥盟 2095
上一篇: Android使用java的Math.Random获取随机色值
下一篇: TouchImageView源码分析
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值