圆角矩形“RoundRectShape”使用详解

简介:

圆角矩形 常用作一些组件的背景

构造函数:

RoundRectShape(float[] outerRadii, RectF inset, float[] innerRadii)

 Specifies an outer (round)rect and an optional inner (round)rect.// 指定一个外部(圆角)矩形 和 一个 可选的 内部(圆角)矩形。

Parameters:

   outerRadii 

  An array of 8 radius values, for the outer roundrect. The first two floats are for the top-left corner (remaining pairs correspond clockwise). For no rounded corners on the outer
rectangle, pass null.

//一个包含8个弧度值,指定外部圆角矩形的 4个角部的弧度及 :new float[] {l, l, t, t, r, r, b, b};

// 前2个 左上角, 3 4 , 右上角, 56, 右下, 78 ,左下,如果没弧度的话,传入null即可。

   inset 

A RectF that specifies the distance from the inner rect to each side of the outer rect. For no inner, pass null.

//指定外部矩形4条边 与内部矩形的4条边的个距离,也用RectF的方式指定。

   innerRadii 

An array of 8 radius values, for the inner roundrect. The first two floats are for the top-left corner (remaining pairs correspond clockwise). For no rounded corners on
the inner rectangle, pass null. If inset parameter is null, this parameter is ignored. 

//同第一个参数。

例子如下:

package com.example.testroundrectshape;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView test = (TextView) findViewById(R.id.test);
		// 外部矩形弧度
		float[] outerR = new float[] { 8, 8, 8, 8, 8, 8, 8, 8 };
		// 内部矩形与外部矩形的距离
		RectF inset = new RectF(100, 100, 50, 50);
		// 内部矩形弧度
		float[] innerRadii = new float[] { 20, 20, 20, 20, 20, 20, 20, 20 };
		
		RoundRectShape rr = new RoundRectShape(outerR, inset, null);
		ShapeDrawable drawable = new ShapeDrawable(rr);
		//指定填充颜色
		drawable.getPaint().setColor(Color.YELLOW);
		// 指定填充模式
		drawable.getPaint().setStyle(Paint.Style.FILL);

		test.setBackgroundDrawable(drawable);

	}
}

 

效果图:


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5438984.html,如需转载请自行联系原作者

相关文章
|
编译器 API 容器
Compose:从重组谈谈页面性能优化思路,狠狠优化一笔
Compose:从重组谈谈页面性能优化思路,狠狠优化一笔
1052 0
|
Python
python numpy安装
一、python下的numpy安装方法 第一步:安装python,这里不做介绍。 第二步:打开cmd看python是否安装成功。 第三步:输入 python -m pip install -U pip 安装pip文件,pip文件一般在python安装包的script目录下。
6509 0
|
8月前
|
传感器 测试技术 人机交互
基于STM32的垃圾分类项目设计与实现【开源免费】
基于 STM32 的垃圾分类项目展示了如何使用微控制器、传感器和机械控制单元来实现自动化的垃圾分类。通过合理的硬件选型和模块化的软件设计,系统能够高效地完成垃圾的分类和投放任务。随着技术的发展,这样的智能垃圾分类系统将有助于提高垃圾分类的效率,为环境保护贡献力量。
548 29
|
9月前
|
敏捷开发 Dubbo Java
需求开发人日评估
敏捷开发中,工时评估是关键环节,常用“人日”衡量任务工作量。本文介绍人日概念及评估方法,涵盖开发、自测、联调、测试、发布各阶段周期参考,并提供常见需求的人日示例,助力团队更科学地制定计划。
456 0
|
XML Android开发 数据安全/隐私保护
cleartext HTTP traffic not permitted
cleartext HTTP traffic not permitted
527 1
|
敏捷开发 数据可视化 API
6款高效的任务看板管理工具,哪款能提升团队协作效率
本文对比了六款流行的任务看板管理工具:板栗看板、Trello、Asana、Monday.com、ClickUp 和 Jira。从功能、易用性、价格等方面进行了详细分析,帮助用户根据团队规模、项目复杂度及预算选择最适合的任务管理工具。
6款高效的任务看板管理工具,哪款能提升团队协作效率
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android多线程编程的重要性及其实现方法,涵盖了基本概念、常见线程类型(如主线程、工作线程)以及多种多线程实现方式(如`Thread`、`HandlerThread`、`Executors`、Kotlin协程等)。通过合理的多线程管理,可大幅提升应用性能和用户体验。
670 15
一个Android App最少有几个线程?实现多线程的方式有哪些?
|
存储 区块链 开发工具
深入理解Web3:构建去中心化应用的未来
在这篇文章中,我们将探索Web3技术的核心概念和它如何为互联网的下一代发展铺平道路。与传统的Web2相比,Web3通过利用区块链技术,为用户提供了更高程度的安全性、透明性和去中心化的体验。我们不仅会介绍Web3的基础知识,还会深入讨论如何使用智能合约和去中心化应用(DApps)来开发基于Web3的项目。本文旨在为开发者提供一个清晰的指南,帮助他们理解并开始构建属于自己的去中心化应用,迈向这个充满可能性的新时代。
374 3
【手把手教学】最新ChatTTS语音合成项目使用指南【附所有源码与模型】
【手把手教学】最新ChatTTS语音合成项目使用指南【附所有源码与模型】
|
搜索推荐 开发工具 Android开发
安卓即时应用(Instant Apps)开发指南
【4月更文挑战第14天】Android Instant Apps让用户体验部分应用功能而无需完整下载。开发者需将应用拆分成模块,基于已上线的基础应用构建。使用Android Studio的Instant Apps Feature Library定义模块特性,优化代码与资源以减小模块大小,同步管理即时应用和基础应用的版本。经过测试,可发布至Google Play Console,提升用户便利性,创造新获客机会。
805 1