博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android UI】 Shape详… 分类: ...
阅读量:4636 次
发布时间:2019-06-09

本文共 1136 字,大约阅读时间需要 3 分钟。

在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片。 这样就容易使apk变大。

 

   那么除了使用drawable这样的图片外,还有其他方法吗?

 

   本次就谈一下自定义图形shape,Android上支持以下几种属性shape、gradient、stroke、corners、padding、solid等。

 

先来看两个例子:

 

 

  1. <</span>shape  
  2.     xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:shape="rectangle">  
  4.     <</span>gradient android:startColor="#FFFF0000"  
  5.         android:endColor="#80FF00FF"  
  6.         android:angle="270" />  
  7.     <</span>padding android:left="50dp"  
  8.         android:top="20dp" android:right="7dp"  
  9.         android:bottom="7dp" />  
  10.     <</span>corners android:radius="8dp" />  
  11. </</span>shape>  

 

 

 

效果:

 

 

简单说明一下:
 
gradient   -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
solid      --  填充。
stroke   --  描边。
corners  --  圆角。
padding   -- 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理。
 
 
 
 
上面这些不是本讲重点。 本讲的重点是这些xml中属性,与Java类的对应关系, 以及如何使用Java类写出上面一样的效果!
 
首先来看对应关系:
 
父节点 shape   --   ShapeDrawable
 [子节点] gradient   --  
 [子节点] padding   --   
 [子节点] corners   --   setCornerRadius 、setCornerRadii 
 [子节点] solid       --    
 [子节点]  stroke   --   setStroke 
 [子节点]  size --   setSize
 
发现只有几个是可以对应的~~ 看来通过Java代码来实现上述是行不通的..

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/leansmall/p/4715908.html

你可能感兴趣的文章
CDMA鉴权
查看>>
ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
查看>>
#include<bits/stdc++.h>包含C++的所有头文件
查看>>
Vue插槽 slot
查看>>
软考之路-网络攻击:主动攻击和被动攻击
查看>>
《windows核心编程系列》二谈谈ANSI和Unicode字符集
查看>>
知识图谱学习笔记(1)
查看>>
第三方原理
查看>>
同意好友
查看>>
随机映射
查看>>
servlet对mysql数据库的数据增删改
查看>>
Windows窗口的建立
查看>>
简述nodejs、npm及其模块在windows下的安装与配置
查看>>
20150411--Dede二次开发-01
查看>>
+load +initialize
查看>>
[Advance] How to debug a program (上)
查看>>
关于cookie与本地 存储的区别的问题。
查看>>
挨踢项目求生法则-团队建设篇
查看>>
Implement strStr()
查看>>
Linked List Cycle II
查看>>