`
longgangbai
  • 浏览: 7340708 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转]android界面的美化shape的使用

 
阅读更多

    Free and Susan

本文转自:http://blog.csdn.net/qq282133/article/details/7370467

 

Shape Drawable

这一类的shape定义在xml

file location:

res/drawable/filename.xml
The filename is used as the resource ID.
(这个文件名作为资源id

compiled resource datatype:(复杂资源的数据类型)

Resource pointer to a GradientDrawable.

resource reference(资源参考):

In Java: R.drawable.filename
In XML: 
@[package:]drawable/filename

syntax:(语法)

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>

元素:

<shape>

The shape drawable. This must be the root element.

attributes:

xmlns:android

StringRequired. Defines the XML namespace, which must be "http://schemas.android.com/apk/res/android".

android:shape

Keyword. Defines the type of shape. Valid values are:(定义这个类型的形状,变量值是:)

Value

Desciption

"rectangle"

A rectangle (长方形)that fills the containing View. This is the default shape.(这个是默认的形状)

"oval"

An oval (椭圆形)shape that fits the dimensions of the containing View.

"line"

A horizontalline that spans the width of the containing View. This shape requires the <stroke> element to define the width of the line.

"ring"

A ring shape.

The following attributes are used only when android:shape="ring":

android:innerRadius

Dimension. The radius for the inner part of the ring (the hole in the middle), as a dimension value or dimension resource.

android:innerRadiusRatio

Float. The radius for the inner part of the ring, expressed as a ratio of the ring's width. For instance, if android:innerRadiusRatio="5", then the inner radius equals the ring's width divided by 5. This value is overridden by android:innerRadius. Default value is 9.

android:thickness

Dimension. The thickness of the ring, as a dimension value or dimension resource.

android:thicknessRatio

Float. The thickness of the ring, expressed as a ratio of the ring's width. For instance, if android:thicknessRatio="2", then the thickness equals the ring's width divided by 2. This value is overridden by android:innerRadius. Default value is 3.

android:useLevel

Boolean. "true" if this is used as a LevelListDrawable. This should normally be "false" or your shape may not appear.

<corners>

Creates rounded corners for the shape. Applies only when the shape is a rectangle.创建圆角的形状。仅适用于当其形状是一个长方形。

attributes:

android:radius

Dimension. The radius for all corners, as a dimension value or dimension resource. This is overridden for each corner by the following attributes.

android:topLeftRadius

Dimension. The radius for the top-left corner, as a dimension value or dimension resource.

android:topRightRadius

Dimension. The radius for the top-right corner, as a dimension value or dimension resource.

android:bottomLeftRadius

Dimension. The radius for the bottom-left corner, as a dimension value or dimension resource.

android:bottomRightRadius

Dimension. The radius for the bottom-right corner, as a dimension value or dimension resource.

Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to notbe rounded, a work-around is to use android:radius to set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want rounded corners.

<gradient>

Specifies a gradient color for the shape.指定一个渐变颜色的形状。

attributes:

android:angle

Integer. The angle for the gradient, in degrees. 0 is left to right, 90 is bottom to top. It must be a multiple of 45. Default is 0.

android:centerX

Float. The relative X-position for the center of the gradient (0 - 1.0).

android:centerY

Float. The relative Y-position for the center of the gradient (0 - 1.0).

android:centerColor

Color. Optional color that comes between the start and end colors, as a hexadecimal value or color resource.

android:endColor

Color. The ending color, as a hexadecimal value or color resource.

android:gradientRadius

Float. The radius for the gradient. Only applied when android:type="radial".

android:startColor

Color. The starting color, as a hexadecimal value or color resource.

android:type

Keyword. The type of gradient pattern to apply. Valid values are:

Value

Description

"linear"

A linear gradient. This is the default.

"radial"

A radial gradient. The start color is the center color.

"sweep"

A sweeping line gradient.

android:useLevel

Boolean. "true" if this is used as a LevelListDrawable.

<padding>

Padding to apply to the containing View element (this pads the position of the View content, not the shape).适用于包含填充视图元素(这垫的位置,而不是观点内容的形状)

attributes:

android:left

Dimension. Left padding, as a dimension value or dimension resource.

android:top

Dimension. Top padding, as a dimension value or dimension resource.

android:right

Dimension. Right padding, as a dimension value or dimension resource.

android:bottom

Dimension. Bottom padding, as a dimension value or dimension resource.

<size>

The size of the shape.

attributes:

android:height

Dimension. The height of the shape, as a dimension value or dimension resource.

android:width

Dimension. The width of the shape, as a dimension value or dimension resource.

Note: The shape scales to the size of the container View proportionate to the dimensions defined here, by default. When you use the shape in an ImageView, you can restrict scaling by setting the android:scaleType to "center".

<solid>

A solid color to fill the shape.

attributes:

android:color

Color. The color to apply to the shape, as a hexadecimal value or color resource.

<stroke>

A stroke line for the shape.

attributes:

android:width

Dimension. The thickness of the line, as a dimension value or dimension resource.

android:color

Color. The color of the line, as a hexadecimal value or color resource.

android:dashGap

Dimension. The distance between line dashes, as a dimension value or dimension resource. Only valid if android:dashWidth is set.

android:dashWidth

Dimension. The size of each dash line, as a dimension value or dimension resource. Only valid if android:dashGap is set.

example:

XML file saved at res/drawable/gradient_box.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

This layout XML applies the shape drawable to a View:

<TextView
    android:background="@drawable/gradient_box"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

This application code gets the shape drawable and applies it to a View:

Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);
 
TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

 

 

gradient   -- 对应颜色渐变。 startcolorendcolor就不多说了。 android:angle 是指从哪个角度开始变。

gradient:渐变
android:startColor
android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"

solid      --  填充。

solid:实心,就是填充的意思
android:color指定填充的颜色

stroke   --  描边。

stroke:描边
android:width="2dp"
描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

corners  --  圆角。

corners:圆角
android:radius
为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners 
        android:topRightRadius="20dp"   
右上角
        android:bottomLeftRadius="20dp"   
右下角
        android:topLeftRadius="1dp"   
左上角
        android:bottomRightRadius="0dp"   
左下角
 />
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个不要记错了

padding   -- 定义内容离边界的距离。 android:padding_leftandroid:padding_right这些是一个道理。

http://www.cnblogs.com/xiaoQLu/archive/2011/09/14/2176359.html

android:angle网上有各种说法,这里,我说说自己的实验结果,渐变的时候,最原始的,即android:angle“0”时,是从左到右,按照开始颜色到结束颜色来渲染的,android:angle“90”是从上到下来渲染的,android:angle“180”是从右到左来渲染的,android:angle“360”android:angle“0”是一样的,所以这里应该是这样的,渲染时按照最原始的渲染色板(把控件内部看作一块可以绕中心旋转的板子)围绕控件中心来旋转相应的度数,即android:angle里面的值就是所需要旋转的角度,只是这个旋转角度必须是45的整数倍

分享到:
评论

相关推荐

    Android控件美化之Shape的使用

    ### Android控件美化之Shape的使用 在Android开发过程中,为了提升用户体验,界面美观是非常重要的一个环节。在美化界面的过程中,`Shape`是一种非常实用且灵活的工具,它可以帮助开发者轻松实现各种各样的视觉效果...

    Android控件美化之Shape的使用[汇编].pdf

    在Android开发中,我们经常需要对UI...在Android UI设计中,熟练掌握Shape的使用对于提升应用界面的专业性和美观性至关重要。同时,Shape还能与其他图形元素结合,如Layer-List、Inset等,以实现更复杂的布局和设计。

    Android ListView边框圆角美化

    本文将深入探讨如何在Android中实现ListView的边框圆角美化,以此来达到类似iPhone界面的视觉效果。 首先,我们需要理解ListView的基本结构。ListView是由多个View(通常是ListView项布局,即Item Layout)组成的,...

    Android自定义对话框Dialog(界面美化).zip

    本文将深入探讨如何在Android中自定义Dialog,并实现界面美化。 首先,创建自定义Dialog的基础步骤是创建一个新的继承自`AlertDialog.Builder`的类。在Java中,我们可以这样实现: ```java public class ...

    Android Shape控件美化实现代码

    本文将深入探讨如何使用Shape控件来美化Android应用。 首先,Shape控件是Android中的一个Drawable类型,它可以通过`&lt;shape&gt;`标签在XML中定义。Shape支持多种形状,如矩形、椭圆、线和路径,但最常见的用法是创建...

    安卓高级xml输入框EditText及其登陆界面布局shape使用

    本篇文章将深入探讨如何构建一个时尚、简洁且具有动态功能的EditText,以及如何在登录界面中利用shape来美化布局。 首先,我们要了解EditText的基本属性。例如,`android:hint`用于设置提示文本,`android:input...

    登录及注册界面界面并用selector和shape进行美化

    在Android应用开发中,用户界面的设计是至关重要的,特别是...这个过程中,我们深入学习了Android界面设计、状态选择器和形状绘制的使用,以及第三方库的集成和自定义。这样的实践有助于提升应用的整体质量和用户体验。

    android模拟实现QQ登录界面

    内容概要:了解基础Android组件的使用,以及shape和selector组件美化。 适合人群:初学Android开发的小萌新,可以利用这个小案例巩固Android基础控件的使用。 能学到什么:可以加深Android布局的使用,以及基础组件...

    Android按钮美化

    本教程将详细讲解如何实现Android按钮的美化,包括创建圆角按钮和应用背景渐变效果。 首先,我们要理解Android中按钮的基本结构。在XML布局文件中,我们可以使用`&lt;Button&gt;`标签来定义一个按钮,其基本语法如下: `...

    Android控件系列之Shape使用方法

    在本文中,我们将深入探讨如何使用`Shape`及其相关的属性来美化Android应用中的控件。 首先,`Shape`是Android图形绘制中的一种基本元素,通常在`res/drawable`目录下的XML文件中定义。一个`Shape`元素可以包含以下...

    shape详解示例代码

    这篇示例代码将深入讲解如何在Android中使用Shape进行自定义布局的美化。 首先,Shape XML文件通常存放在项目的`res/drawable`目录下。一个基本的Shape元素结构如下: ```xml &lt;shape xmlns:android=...

    andorid 美化 扁平按钮美化

    在Android开发中,UI设计是用户体验的关键因素之一,而按钮的美化则是提升界面美观度的重要环节。扁平化设计作为现代界面设计的主流趋势,它强调简洁、清晰和功能性的结合,摒弃了过多的装饰元素,使得界面更加直观...

    Android例子源码四种效果不同的旋转进度条

    例如,使用默认的系统动画资源`@android:drawable/progress_indeterminate_horizontal`。 2. **渐变颜色的旋转进度条** 这种效果使进度条在旋转过程中颜色逐渐变化,可以增加视觉吸引力。实现方法是自定义一个菊花...

    android 常用资大全

    网上收集和自己总结的一些android使用资料,比较基础的知识,对全面了解一些知识很不错的 android ListView美化.docx androidshape.docx android_textview.设置文本属性.docx android_设置字体样式.docx ...

    Android shape和selector 结合使用实例代码

    总之,Shape和Selector在Android UI设计中扮演着重要角色,它们提供了丰富的自定义能力,让开发者可以创建出富有吸引力且功能多样的用户界面。通过灵活运用这两者,开发者可以提升应用的整体美观性和交互体验。

    Android经典Demo源码集

    此Demo可能展示了如何自定义TextView的背景,包括使用shape、bitmap、selector等,让开发者更深入地理解Android的图形绘制和界面美化。 7. **MonitorPhone**: 这可能是一个手机监控或者状态检测的示例,可能包括...

    Android代码-luckyTurnTable

    9. 界面美化: 为了提高用户体验,开发者可以进一步改进界面设计,比如调整颜色搭配、添加阴影效果、优化文字排版等。此外,使用Material Design指南可以创建更现代、一致的界面风格。 总的来说,"Android代码-...

    安卓学习资料(shape的用法)

    在安卓开发过程中,为了美化用户界面,开发者经常需要使用各种自定义的图形元素。其中,`shape`是一种非常实用且灵活的图形资源,它允许开发者轻松地定义包括背景颜色、边框样式、渐变效果等在内的多种视觉元素。...

    android拱形进度条和圆形进度条

    在Android开发中,进度条是用户界面中常见的一种组件,用于显示任务的完成进度或某个操作的状态。Android系统提供了多种类型的进度条,其中包括线性的、水平的、垂直的,以及我们今天要讨论的拱形进度条和圆形进度条...

    android开发使用的透明图片集2

    综上所述,"android开发使用的透明图片集2" 提供的资源对于Android开发者来说是一份宝贵的素材库,它们可以帮助开发者轻松实现界面美化,提高应用的整体设计质量。合理运用这些图片,可以使应用在视觉效果上脱颖而出...

Global site tag (gtag.js) - Google Analytics