前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android UI 设计技巧

Android UI 设计技巧

作者头像
提莫队长
发布2019-03-01 09:57:47
4800
发布2019-03-01 09:57:47
举报
文章被收录于专栏:刘晓杰刘晓杰

(1)使用include 标签实现包含共享UI设计

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</merge>
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".MainActivity" >    
    <include layout="@layout/layout1" />
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
</LinearLayout>

<merge/>标签帮助你排除把一个布局插入到另一个布局时产生的多余的View Group.如,你的被复用布局是一个垂直的线性布局,包含两个子视图,当它作为一个被复用的元素被插入到另一个垂直的线性布局时,结果就是一个垂直的LinearLayout里包含一个垂直的LinearLayout。这个嵌套的布局并没有实际意义,而且会让UI性能变差。为了避免插入类似冗余的View Group,你可以使用<merge/>标签标签作为可复用布局的根节点

(2)使用shapes 实现渐变效果。(gradient标签)

我们来创建一个 drawable 的XML 文件。

代码语言:javascript
复制
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <gradient
        android:angle="270"
        android:endColor="#80FF00FF"
        android:startColor="#FFFF0000" />
    <padding
        android:bottom="7dp"
        android:left="50dp"
        android:right="7dp"
        android:top="20dp" />
    <corners android:radius="8dp" />
</shape>

android:angle 表示从哪个角度开始,

android:shape="rectangle"设置图形, 默认的也是长方形; 

corners 表示是有半径;

android:startColor="#FFFF0000" 设置背景的起始颜色,

android:endColor="#80FF00FF"设置背景的最终色,背景在这两种颜色之间渐变。

(3)灵活使用styles.xml。

(4)自定义按钮显示效果。(Selector 标签)

代码语言:javascript
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/transparent" 
        android:state_window_focused="false"/>
    
    <item android:drawable="@drawable/selector_background_disabled" 
        android:state_enabled="false" 
        android:state_focused="true" 
        android:state_pressed="true"/>
    
    <item android:drawable="@drawable/lselector_background_disabled" 
        android:state_enabled="false" 
        android:state_focused="true"/>
</selector>

(5)实现无失真图片拉伸(9-Patch 图片处理)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年02月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (1)使用include 标签实现包含共享UI设计
  • (2)使用shapes 实现渐变效果。(gradient标签)
  • (3)灵活使用styles.xml。
  • (4)自定义按钮显示效果。(Selector 标签)
  • (5)实现无失真图片拉伸(9-Patch 图片处理)
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档