Android 使用shape来优化界面效果

简介:

    前些天去参加了一个公开课,说到了我们很多程序对美工比较不在行,所以需要与UI工程师合作,但是有时候UI工程师忙其他的什么,我们既不会PS也不会AI。于是乎在android中我们可以通过shape来定制我们需要的图形效果等。

    下午研究了下shape,众所周知shape是形状的意思。网络上的例子太多看的真让人眼花缭乱,自己总结了下,以如何使用shape来做圆角按钮的背景来说明shape的具体使用吧。

   看下效果图

    

   具体实现代码:

  

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" > 
  3.      <!-- 填充 --> 
  4.     <solid  
  5.         android:color="#B2B2B2"  
  6.         /> 
  7.     
  8.     <!-- 大小 --> 
  9.     <size 
  10.         android:width="200dp" 
  11.         android:height="50dp" 
  12.         />  
  13.  
  14.      <!-- 渐变色 --> 
  15.     <gradient  
  16.         android:startColor="#DBDCDD" 
  17.         android:endColor="#B8B9BB" 
  18.         android:centerColor="#ADADAF" 
  19.         android:angle="270"   
  20.         /> 
  21.   
  22.      
  23.     <!-- 描边 --> 
  24.     <stroke  
  25.         android:width="2dp" 
  26.         android:color="#3D4148"   
  27.         />  
  28.          
  29.     <!-- 圆角 --> 
  30.     <corners   
  31.        android:radius="5dp"   
  32.         /> 
  33.   
  34.     <padding  
  35.         android:left="10dp" 
  36.         android:top="10dp" 
  37.         android:right="10dp" 
  38.         android:bottom="10dp" 
  39.         /> 
  40.  
  41. </shape> 
  42.  
  43. <!--  
  44.  
  45. 1、  solid  
  46.      描述:内部填充 
  47.       属性     android:color 填充颜色 
  48.  
  49.  
  50. 2、size  
  51.      描述:size: 大小 
  52.      属性: 
  53.      android:width   表示形状的宽度 
  54.      android:height 表示形状的高度 
  55.  
  56. 3、gradient 
  57.       
  58.       描述: 渐变色 
  59.     
  60.        属性: 
  61.        android:startColor  起始颜色 
  62.        android:endColor    结束颜色 
  63.        android:angle       渐变角度(PS:当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。angle必须为45的整数倍) 
  64.        android:type       渐变类型(取值:linear、radial、sweep) 
  65.                             linear  线性渐变,这是默认设置 
  66.                             radial  放射性渐变,以开始色为中心。 
  67.                             sweep   扫描线式的渐变。 
  68.        android:centerColor  渐变中间颜色,即开始颜色与结束颜色之间的颜色 
  69.        android:useLevel   如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色 
  70.        android:gradientRadius  渐变色半径.当 android:type="radial" 时才使用。单独使用 android:type="radial"会报错。 
  71.        android:centerX    渐变中心X点坐标的相对位置 
  72.        android:centerY   渐变中心Y点坐标的相对位置 
  73. 4、stroke 
  74.  
  75.     描述: stroke:描边  相当于html中的盒子模型的border 
  76.          
  77.    属性: 
  78.         android:width 描边的宽度 
  79.         android:color 描边的颜色 
  80.         android:dashWidth 表示描边的样式是虚线的宽度, 
  81.                                                              值为0时,表示为实线。值大于0则为虚线。 
  82.         android:dashGap  表示描边为虚线时,虚线之间的间隔 即“ - - - - ” 
  83.          
  84.  5、corners 
  85.   
  86.          描述: corners: 圆角 
  87.       
  88.         属性: 
  89.         android:radius  半径 
  90.         android:topLeftRadius  左上角半径 
  91.         android:topRightRadius  右上角半径 
  92.         注意一下两个属性比较不同: 
  93.         android:bottomLeftRadius 右下角半径 
  94.         android:bottomRightRadius 左下角半径 
  95.  6、padding 
  96.            
  97.           描述:内部边距,即内容与边的距离 
  98.            
  99.          属性: 
  100.         android:left  左内边距 
  101.         android:top   上内边距 
  102.         android:right  右内边距 
  103.         android:bottom 下内边距 
  104.  --> 

    


本文转自xuzw13 51CTO博客,原文链接:http://blog.51cto.com/xuzhiwei/972188,如需转载请自行联系原作者

相关文章
|
26天前
|
缓存 监控 Java
构建高效Android应用:从优化用户体验到提升性能
在竞争激烈的移动应用市场中,为用户提供流畅和高效的体验是至关重要的。本文深入探讨了如何通过多种技术手段来优化Android应用的性能,包括UI响应性、内存管理和多线程处理。同时,我们还将讨论如何利用最新的Android框架和工具来诊断和解决性能瓶颈。通过实例分析和最佳实践,读者将能够理解并实施必要的优化策略,以确保他们的应用在保持响应迅速的同时,还能够有效地利用系统资源。
|
1月前
|
调度 数据库 Android开发
构建高效Android应用:Kotlin协程的实践与优化
在Android开发领域,Kotlin以其简洁的语法和平台友好性成为了开发的首选语言。其中,Kotlin协程作为处理异步任务的强大工具,它通过提供轻量级的线程管理机制,使得开发者能够在不阻塞主线程的情况下执行后台任务,从而提升应用性能和用户体验。本文将深入探讨Kotlin协程的核心概念,并通过实例演示如何在实际的Android应用中有效地使用协程进行网络请求、数据库操作以及UI的流畅更新。同时,我们还将讨论协程的调试技巧和常见问题的解决方法,以帮助开发者避免常见的陷阱,构建更加健壮和高效的Android应用。
36 4
|
1月前
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
1月前
|
API 数据库 Android开发
构建高效Android应用:探究Kotlin多线程优化策略
【2月更文挑战第14天】随着移动设备性能的日益强大,用户对应用程序的响应速度和流畅性要求越来越高。在Android开发中,合理利用多线程技术是提升应用性能的关键手段之一。Kotlin作为一种现代的编程语言,其协程特性为开发者提供了更为简洁高效的多线程处理方式。本文将深入探讨使用Kotlin进行Android多线程编程的最佳实践,包括协程的基本概念、优势以及在实际项目中的应用场景和性能优化技巧,旨在帮助开发者构建更加高效稳定的Android应用。
|
2月前
|
搜索推荐 安全 Android开发
如何优化安卓应用的用户体验
【2月更文挑战第9天】在当今移动互联网时代,安卓应用已成为人们日常生活中不可或缺的一部分。然而,用户对应用的使用体验越来越苛刻,一个不好的应用体验很容易导致用户的流失。本文将介绍如何从多个方面优化安卓应用的用户体验。
|
24天前
|
Java Android开发 开发者
构建高效Android应用:Kotlin协程的实践与优化
在响应式编程范式日益盛行的今天,Kotlin协程作为一种轻量级的线程管理解决方案,为Android开发带来了性能和效率的双重提升。本文旨在探讨Kotlin协程的核心概念、实践方法及其在Android应用中的优化策略,帮助开发者构建更加流畅和高效的应用程序。通过深入分析协程的原理与应用场景,结合实际案例,本文将指导读者如何优雅地解决异步任务处理,避免阻塞UI线程,从而优化用户体验。
|
1天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
7天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
5 0
|
13天前
|
存储 数据库 Android开发
构建高效安卓应用:采用Jetpack架构组件优化用户体验
【4月更文挑战第12天】 在当今快速发展的数字时代,Android 应用程序的流畅性与响应速度对用户满意度至关重要。为提高应用性能并降低维护成本,开发者需寻求先进的技术解决方案。本文将探讨如何利用 Android Jetpack 中的架构组件 — 如 LiveData、ViewModel 和 Room — 来构建高质量的安卓应用。通过具体实施案例分析,我们将展示这些组件如何协同工作以实现数据持久化、界面与逻辑分离,以及确保数据的即时更新,从而优化用户体验并提升应用的可维护性和可测试性。
|
18天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。