UI设计一般有两种方式,首先是UI把图形设计好,分解成UI设计元素后,在代码中直接使用,对于那些简单的图形,如矩形、扇形这样的图形,一般的系统的API会提供这样的接口,但是在Android下,有第三种画图方式,介于二者之间,结合二者的长处,如下的代码:
- <item android:id="@android:id/secondaryProgress">
- <clip>
- <shape>
- <corners android:radius="5dip" />
- <gradient
- android:startColor="#0055ff88"
- android:centerColor="#0055ff00"
- android:centerY="0.75"
- android:endColor="#00320077"
- android:angle="270"
- />
- </shape>
- </clip>
- </item>
这是一个Progress的style里面的代码,描述的是进度条的为达到的图形,原本以为这是一个图片,后来仔细的跟踪代码,发现居然是 xml,像这种shape corners gradient等等这还是第一次碰到。shape 表示是一个图形,corners表示是有半径为5像素的圆角,然后,gradient表示一个渐变。这样作图简单明了,并且可以做出要求很好的图形,并且节省资源
xml代码
- <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
- <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
- android:angle="270"/>
- <padding android:left="50dp" android:top="20dp"
- android:right="7dp" android:bottom="7dp" />
- <corners android:radius="8dp" />
- </shape>
gradient 产生颜色渐变 android:angle 从哪个角度开始变 貌似只有90的整数倍可以
android:shape="rectangle" 默认的也是长方形
- <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
- <solid android:color="#ff4100ff"/>
- <stroke android:width="2dp" android:color="#ee31ff5e"
- android:dashWidth="3dp" android:dashGap="2dp" />
- <padding android:left="7dp" android:top="7dp"
- android:right="7dp" android:bottom="7dp" />
- <corners android:radius="6dp" />
- </shape>
#ff4100ff蓝色#ff4100ff绿色
<solid android:color="#ff4100ff"/>实心的 填充里面
<stroke 描边 采用那样的方式将外形轮廓线画出来
android:dashWidth="3dp" android:dashGap="2dp" 默认值为0
android:width="2dp" android:color="#FF00ff00"笔的粗细,
android:dashWidth="5dp" android:dashGap="5dp" 实现- - -这样的效果,dashWidth指的是一条小横线的宽度
dashGap 指的是 小横线与小横线的间距。 width="2dp" 不能太宽
shape等特殊xml
1.用 shape 作为背景
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#f0600000"/>
- <stroke android:width="3dp" color="#ffff8080"/>
- <corners android:radius="3dp" />
- <padding android:left="10dp" android:top="10dp"
- android:right="10dp" android:bottom="10dp" />
- </shape>
相关推荐
在本篇内容中,我们将深入探讨如何实现Android中的圆角背景SpannableString,并讨论可能的封装方法。 SpannableString是Android SDK提供的一种字符串对象,它允许我们在字符串的不同部分应用不同的样式,如颜色、...
在Android开发中,为图片或背景添加圆角效果是一种常见的需求,这可以提升应用的界面美观性和用户体验。本文将深入探讨如何实现图片和背景的半圆角及全圆角效果,并提供源码分析。 首先,要理解Android中实现圆角...
本文将深入探讨如何在Android中创建一个自定义的TextView,使其具有圆角和可变背景颜色的功能。这个自定义TextView控件可以避免在XML布局文件中为每种颜色创建单独的背景资源,从而提高代码的复用性和效率。 首先,...
- 对于自定义形状背景,可以在drawable资源文件中创建一个`shape`标签,利用`<corners>`子标签设置`android:radius`属性来定义圆角大小。 3. **设置布局**:在`onCreate()`方法中,通过`setContentView()`加载...
本实例将详细介绍如何在Android中创建一个圆角ListView。 首先,我们要明白圆角效果通常是由背景Drawable实现的。在Android中,可以使用Shape Drawable来定义一个带有圆角的矩形。在`res/drawable`目录下创建一个...
RoundedImageView是一个开源库,如压缩包中的RoundedImageView-master所示,它允许你直接在XML布局中定义图像视图的圆角属性,如`android:CornerRadius`。 此外,我们还可以使用Shader来实现圆角效果。Shader是...
在Android开发中,有时我们需要为应用的界面增添一些个性化的元素,比如圆角图片背景。在本教程中,我们将深入探讨如何自定义一个`RelativeLayout`,使其具备圆角图片背景的功能。这涉及到自定义属性、设置圆角以及...
自定义布局通常涉及到对`shape`资源文件的使用,以定义一个具有圆角的背景。在`res/drawable`目录下,我们可以创建一个名为`rounded_edittext.xml`的文件,内容如下: ```xml <shape xmlns:android=...
总之,Android创建抗锯齿透明背景圆角图像涉及到图像处理、图形绘制和UI设计等多个方面。通过研究提供的源码,开发者不仅可以学习到如何创建圆角图像,还可以了解到如何优化视觉效果,提高应用的用户体验。对于希望...
总之,“圆角背景的ListView”这个主题涵盖了Android自定义Adapter、布局设计、性能优化以及状态选择器等关键知识点,对于开发者来说,理解和掌握这些内容对于创建美观且高效的列表视图至关重要。通过实践和学习,...
在Android开发中,创建具有抗锯齿效果的透明背景和圆角图像是一项常见的需求,尤其在设计用户界面时。为了实现这一目标,开发者通常需要掌握以下几个关键知识点: 1. **BitmapShader**: BitmapShader是Android图形...
Drawable是Android中用于绘制图形的对象,可以用来设置按钮、背景等视图的外观。在创建圆角按钮时,我们通常会使用Shape Drawable,它允许我们定义各种形状(如矩形、椭圆)并添加填充色、边框、渐变等样式。 创建...
在Android开发中,实现“上面圆角,下面直角”的界面设计是一种常见的需求,这主要应用于顶部导航栏或者对话框等元素,以增加界面的视觉吸引力和用户体验。本篇文章将详细探讨如何在Android中实现这样的效果,以及...
例如,可以通过设置`android:listSelector`属性来自定义选中项的背景,或者通过`android:divider`和`android:dividerHeight`来设置分割线。 6. **其他高级技巧**:为了实现更复杂的圆角效果,比如只让顶部和底部有...
这将在ImageView上创建一个四角都为16dp圆角的矩形背景。 2. **三角形和五角星等复杂形状**:对于非矩形形状,如三角形或五角星,你需要使用`<path>`标签,并通过`moveTo()`、`lineTo()`等方法定义路径。这需要...
1. **XML Shape Drawable**:在Android的资源文件夹(res/drawable)中创建一个XML文件,定义一个shape元素,并设置其corners属性为需要的圆角半径。例如: ```xml <shape xmlns:android=...
下面将详细介绍如何实现一个“android圆角矩形进度条”。 首先,我们要明白Android中的进度条(ProgressBar)通常是线性的或圆形的,默认样式可能无法满足所有设计需求。为了创建圆角矩形进度条,我们需要自定义一...
本篇文章将详细介绍如何在Android中实现圆角矩形背景,通过Java代码实例来展示具体步骤。 首先,我们需要自定义一个Drawable类,例如`RoundRectDradable`,它继承自`Drawable`。这个类的核心在于利用`...
3. **处理XML属性**:在Android的资源文件中定义自定义属性,例如`app:cornerRadius`来设置圆角半径。使用`TypedArray`从XML布局中获取这些值,并在构造函数或初始化方法中应用它们。 4. **尺寸适配**:为了使视图...
2. **使用`Shape Drawable`**:创建一个XML文件,定义一个`shape`为`rectangle`,并设置`corners`属性为需要的圆角半径。然后将这个`Shape Drawable`作为`ImageView`的背景,通过调整`ScaleType`可以实现不同位置的...