Android开发之安卓上Mac样式的按钮

最近试着玩玩Android开发,做一个小玩意儿的时候,总感觉默认的按钮样式太糟糕,看到网上几幅IPhone截图,觉得按钮有点感觉,就想着抄一个过来……相当的没有技术含量,只不过记性不好,记录一下。

PhotoShop上的准备

用简单的方法,设置background图片。

先渐变填充圆角矩形(半径4左右),渐变的首尾颜色自己定好了,不过过渡位置我试了下,大约是上图1所示,在40%和60%增加两个色标,值为首尾之差的1/3和2/3。
做出立体效果和阴影,如2所示
做出边框线,如3所示
然后调两个亮一点和暗一点的(没用过IPhone不知道有焦点和按下时什么样子我这里就偷懒弄个明暗变化)按钮。
应用到按钮上

在drawable里定义一个式样文件

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true" android:drawable="@drawable/game_button_pressed" />
  <item android:state_focused="true" android:drawable="@drawable/game_button_focused" />
  <item android:drawable="@drawable/game_button_normal" />
</selector>

然后按钮的background指向它,这就完了~~

追记:

后来看到一种完全用XML定义按钮的方法,靠谱,虽然变化好像有些单调,但可以不用图片毕竟是好事,先记录一下方法,有空试试~

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true">
  <shape>
   <gradient android:startColor="#0d76e1" android:endColor="#0d76e1" android:angle="270" />
   <stroke android:width="1dip" android:color="#f403c9" />
   <corners android:radius="2dp" />
   <padding android:left="10dp" android:top="10dp"
    android:right="10dp" android:bottom="10dp" />
  </shape>
 </item>
 
 <item android:state_focused="true">
  <shape>
   <gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7" android:angle="270" />
   <stroke android:width="1dip" android:color="#f403c9" />
   <corners android:radius="2dp" />
   <padding android:left="10dp" android:top="10dp"
    android:right="10dp" android:bottom="10dp" />
  </shape>
 </item>
 
 <item>
  <shape>
   <gradient android:startColor="#000000" android:endColor="#ffffff" android:angle="180" />
   <stroke android:width="1dip" android:color="#f403c9" />
   <corners android:radius="5dip" />
   <padding android:left="10dp" android:top="10dp"
    android:right="10dp" android:bottom="10dp" />
  </shape>
 </item>
</selector>

时间: 2024-09-17 03:41:21

Android开发之安卓上Mac样式的按钮的相关文章

Android开发之机顶盒上gridview和ScrollView的使用详解_Android

最近在机顶盒上做一个gridview, 其焦点需要在item的子控件上,但gridview的焦点默认在item上,通过 android:descendantFocusability="afterDescendants" <ScrollView android:id="@+id/scroll_content" android:layout_width="1740.0px" android:layout_height="600.0px

Android开发之机顶盒上gridview和ScrollView的使用详解

最近在机顶盒上做一个gridview, 其焦点需要在item的子控件上,但gridview的焦点默认在item上,通过 android:descendantFocusability="afterDescendants" <ScrollView android:id="@+id/scroll_content" android:layout_width="1740.0px" android:layout_height="600.0px

Android开发之获取短信验证码后按钮背景变化并且出现倒计时

目前越来越多的app在注册或是进行对应操作时,要求获取短信验证码,在点击了获取短信验证码的按钮后,就是出现倒计时,比如倒计时120S,在倒计时期间内,按钮背景变化并且出现倒计时,当倒计时结束后,如果你没有获取到验证码,可以再次点击. 代码如下所示: VerCodeTimer mVerCodeTimer=(Button) findViewById(R.id.login_get_ver_code); private class VerCodeTimer extends CountDownTimer

Android开发中ListView显示不同样式的item实例方法

还是先看效果图吧 我们再使用listview时,大多时候listview的item大多时候都是一种样式,在很多app中也很常见,但有时候根据需求,可能数据的数量不一样,同个类型的数据显示的位置不同,亦或者有的item需要图片,有的不需要,但是这些又必须在同一个listview中显示,这时我们就需要在listview中显示多种样式的item,首先我们需要考虑的是如何将不同数量的数据装载到ArrayList<~>中呢,先看看下面的listViewItem,. package com.example

android开发-为什么安卓的graphical什么都没有显示,也不能拉控件进去

问题描述 为什么安卓的graphical什么都没有显示,也不能拉控件进去 开发-为什么安卓的graphical什么都没有显示,也不能拉控件进去-wii进去hbc什么都没有"> 解决方案 可能少安了一个插件 我也遇到过这个问题 记不太清了 可能是ADT或者是SDK 和AVD反正都能用到都安上吧 解决方案二: ADT,SDK,都有,那应该是差了AVD吧,我弄一个看看,谢谢. 解决方案三: 呃..貌似它是让你更新一下ADT,估计是ADT里面缺失一些东西吧

android开发-genymotion安卓虚拟机安装时报如下图片错误

问题描述 genymotion安卓虚拟机安装时报如下图片错误 genymotion安卓虚拟机安装报这个错误是怎么回事-??!sdk在eclipise安装是正确的!!!求大神解答 我都重装好几次了--烦 解决方案 图片看不到,建议你咨询下身边的人.都是小问题.

在调试第一个用Xaramin For Android开发的安卓程序的时候,发现调试模式中无法命中断点,这是什么原因。

问题描述 开发环境为:VisualStudio2013.在XamarinStudio中可以命中断点.是不是VS中还需要特别的设置. 解决方案

为什么网站在安卓上不显示css的样式?

问题描述 用asp.net写的网站,样式表在iphone和pc上一切正常,在安卓上css样式全部无效.这是为什么呢谁告诉我啊. 解决方案 解决方案二:是手机浏览器解决方案三:手机浏览器自带的内核不识别你的css吧,可以抓包看下css有没有被下载,如果被下载了,就确认是上述原因解决方案四:索尼自带的浏览器怎么会不识别css呢.其他网站正常啊解决方案五:引用2楼ygycomon的回复: 手机浏览器自带的内核不识别你的css吧,可以抓包看下css有没有被下载,如果被下载了,就确认是上述原因 索尼自带的

eclispe-android开发中控件上的文字不能含有&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;或者&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;,这该怎么办

问题描述 android开发中控件上的文字不能含有"<"或者">",这该怎么办 比如:android:text="测试" 这样可以 但是android:text="<测试"这样就报错 我主要做个 类似 后退功能的 按钮..可是发现添加不了"<"或者">" 该怎么办 解决方案 我去,这里也发不了特殊字符 解决方案二: ## bbd 解决方案三: 写成 <