为什么在shape中定义一个shape类好了 按钮没有改变

JAVA作业,求解答 ,详细一点 谢谢^O^&定义一个平面图形形状类Shape,在该类中定义一个求面积的方法area()。再定义类:圆(Circle),矩形(Rectangle)和三角形(Triangle),从Shape类继承。而类正方形(Square)从矩形(Rectangle)继承。在所有子类中定义必要的成员变量和成员方法(包括构造方法和重写的方法)。要求:编写一个测试程序,实现构造不同的图形(圆,矩形,三角形,正方形),并能计算各类图形的面积。定义一个表达日期的类Date,在该类中包括三个成员变量year,month,day,必要的构造方法和一个用来比较两个日期大小的方法compares(Date d)。compares(Date d)方法的实现:先比较两个日期的年份,年份大的日期值就大,否则就小;年份相同的情况下,继续比较月份,月份大的日期值就大,否则就小;月份也相同的情况下,继续比较日子,日子大的日期值就大,否则就小。年份,月份和日子都相同时,则两个日期相等。要求:编写一个测试程序,在程序中定义一个包含五个元素的日期(Date)类型的数组,并对这个数组中的日期从小到大排序,然后输出。
问题不小,没有分拿怎好回答与你。。
为您推荐:
扫描下载二维码shapebutton 自定义圆角动画按钮.
实现好看的 状态效果 android 238万源代码下载-
&文件名称: shapebutton
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 349 KB
&&上传时间:
&&下载次数: 46
&&提 供 者:
&详细说明:自定义圆角动画按钮.
实现好看的自定义按钮状态效果-Custom rounded animation button.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&MyButton\.classpath&&........\.project&&........\AndroidManifest.xml&&........\bin\classes.dex&&........\...\.om\geolo\android\MainActivity.class&&........\...\...\.....\.......\MyButtonView$MyThread.class&&........\...\...\.....\.......\MyButtonView.class&&........\...\...\.....\.......\R$attr.class&&........\...\...\.....\.......\R$drawable.class&&........\...\...\.....\.......\R$layout.class&&........\...\...\.....\.......\R$string.class&&........\...\...\.....\.......\R.class&&........\...\MyButton.apk&&........\...\resources.ap_&&........\default.properties&&........\gen\com\geolo\android\R.java&&........\proguard.cfg&&........\res\drawable\my_button.xml&&........\...\........-hdpi\icon.png&&........\...\.........ldpi\icon.png&&........\...\.........mdpi\icon.png&&........\...\.............\mybutton.png&&........\...\.............\mybutton01.png&&........\...\.............\mybutton02.png&&........\...\.............\mybutton03.png&&........\...\.............\mybutton04.png&&........\...\.............\mybutton05.png&&........\...\.............\mybutton06.png&&........\...\.............\mybutton07.png&&........\...\.............\mybutton08.png&&........\...\.............\mybutton09.png&&........\...\.............\mybutton10.png&&........\...\.............\mybutton11.png&&........\...\.............\mybutton12.png&&........\...\.............\mybutton13.png&&........\...\.............\mybutton14.png&&........\...\.............\mybutton15.png&&........\...\.............\mybutton16.png&&........\...\.............\mybutton17.png&&........\...\.............\mybutton18.png&&........\...\.............\mybutton19.png&&........\...\.............\mybutton20.png&&........\...\.............\mybutton_back.png&&........\...\.............\mybutton_back2.png&&........\...\.............\myutil.png&&........\...\layout\main.xml&&........\...\values\strings.xml&&........\src\com\geolo\android\MainActivity.java&&........\...\...\.....\.......\MyButtonView.java&&........\bin\com\geolo\android&&........\gen\com\geolo\android&&........\src\com\geolo\android&&........\bin\com\geolo&&........\gen\com\geolo&&........\src\com\geolo&&........\bin\com&&........\gen\com&&........\res\drawable&&........\...\drawable-hdpi&&........\...\drawable-ldpi&&........\...\drawable-mdpi&&........\...\layout&&........\...\values&&........\src\com&&........\assets&&........\bin&&........\gen&&........\res&&........\src&&MyButton
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 正在学习关于socket的内容,发现网上很少有客户端和服务端都是android的例子,就自己写了一个
&[] - 模仿QQ好友列表的实现...
&[] - 深入浅出_Google_Android(PDF格式高清中文版),不错的资料,大家可以共享
&[] - 实现图片的浏览,拖动,放大,缩小...手势
&[] - android 下自己写得图片浏览器,支持照相功能,和图片编辑功能
&[] - 有些朋友可能对Android系统的手机不太熟悉,相信你见了Android系统的手机后你肯定会喜欢上的,绚丽的界面,好看的字体,彰显华贵和专业。本源码收集的就是android系统中的一些基本单元,比如弹出的提示框、提示层的应用、漂亮按钮的编写、菜单和列表等,相信对您研究Android系统有帮助。--d
&[] - android界面开发设计中,实现按钮的渐变色功能的程序
&[] - android 手势识别 左右滑动 上线滑动Android开发技巧:给Button的点击上色 - 推酷
Android开发技巧:给Button的点击上色
UI设计中,按钮一般都会有多个状态,比如:聚焦、点击等,不同的状态必须显示不同的呈现形式(比如颜色、形状的改变),这样用户才能感觉到按钮被成功选中、点击了,否则用户体验就会非常差了。
本篇文章就简单地描述一下Android开发中,如何动态改变Button状态切换时的背景。
Android的UI设计中,默认情况下,系统会为Button的点击实现一个默认的背景切换。
例如下面这样的一个Button:
android:layout_width=&wrap_content&
android:layout_height=&wrap_content& /&
用户在点击Button的时候,会有一个蓝色外框显示出来,表明Button被点击了。如图所示:
但是,如果想为Button添加自定义的图片背景,如:
android:background=&@drawable/upload&
那么,当你点击Button的时候会发现,Button啥反应都没有,在用户点击的时候Button的背景没有任何变化,用户无法知道到底点击成功了没有
,所以,这不是一个好的用户体验。
当然,这种情况可以考虑使用ImageButton,如:
&ImageButton
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:src=&@drawable/upload&/&
ImageButton会将src所指的图片缩小放入Button的方框内中央显示,Button点击前后的显示效果如图所示:
上面是采用系统默认的Button点击效果,那么,如果期望自己定义Button的点击效果,该如何实现呢?
下面,我将介绍两种在Button被点击时改变背景的方式,一种是采用多张背景图片切换的方式,另一种是采用shape来定义Button状态切换的背景显示。
1. &多张背景图片切换
首先,为Button准备两张背景图片,一张是Button未点击时显示的图片,另一张是Button被点击时显示的图片,如图所示:
然后,在工程的res/drawable目录下创建一个 xml 文件,这里命名为:button_selector.xml
内容如下:
&?xml version=&1.0& encoding=&utf-8&?&
&selector xmlns:android=&/apk/res/android&&
android:state_pressed=&true&
android:drawable=&@drawable/up_pressed&/&
android:state_pressed=&false&
android:drawable=&@drawable/up&/&
&/selector&
说明:这里的selector标签就相当与Button状态的选择器,每一个item子项代表着Button的一种状态,这里我只选取了两种状态做示例,一种是Button被点击,另一种是Button未被点击。全部的Button状态可以参考Google Android Development相关网页:
然后,在Button的标签中,把 background 属性的值改为 button_selector 即可:
android:background=&@drawable/button_selector&
可以运行程序试试,当点击Button后,是不是Button的背景从左图变化成为右图了?
这种方法是比较直观简单的方法,在实际的工程中也大量使用,但也有一个缺陷,必须为所有的Button准备多张背景图片,为每一个状态准备一张,加大了UI设计的工作量,也加大了程序的大小。
2. 通过shape来自定义Button的UI显示
首先,定义两个xml文件,分别为shape_normal.xml ,shape_pressed.xml
文件中,定义shape的属性,shape的原理参考Google Android官方文档:
(1)shape_normal.xml
&?xml version=&1.0& encoding=&utf-8&?&
&shape xmlns:android=&/apk/res/android&
android:shape=&rectangle&&
android:startColor=&#808080&
android:endColor=&#808080&
android:angle=&-90&/&
(2) shape_pressed.xml
&?xml version=&1.0& encoding=&utf-8&?&
&shape xmlns:android=&/apk/res/android&
android:shape=&rectangle&&
android:startColor=&#FF7F00&
android:endColor=&#EE7600&
android:angle=&-90&/&
然后,依然定义一个 button_selector.xml文件,只不过该selector的android:drawable所指的内容,由图片改为shape文件。
&?xml version=&1.0& encoding=&utf-8&?&
&selector xmlns:android=&/apk/res/android&&
android:state_pressed=&true&
android:drawable=&@drawable/shape_pressed&/&
android:state_pressed=&false&
android:drawable=&@drawable/shape_normal&/&
&/selector&
然后,将所需的Button的background依然指向该selector文件,即可实现自定义Button点击的背景切换效果.
采用这种方式的Button点击前后的效果如图所示:
shape可以定义的内容很丰富,包括圆角的设置,线条的粗细等等,这里不一一演示,可以自己修改后测试效果。
ImageButton也可以采用这种方法来自定义Button点击的背景颜色切换效果,不过要注意为ImageButton添加一个android:padding属性,使得src的图片与Button的边界有一定的距离,这样才能动态改变背景,因为ImageButton能改变的颜色只是src图片以外的背景区域,图片本身的颜色是不会变的。
&ImageButton
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:src=&@drawable/upload_pressed&
android:padding=&5dp&
android:layout_centerVertical=&true&
android:background=&@drawable/button_selector&/&
效果如图:
& &这篇文章就写到这儿了,本文主要描述了如何为Button的点击动态改变背景,主要通过selector来实现,而具体的呈现形式可以通过多个图片背景切换,或者通过Shape标签来定义。文中有不清楚的地方欢迎留言讨论或者来信lujun.交流。
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致下次自动登录
现在的位置:
& 综合 & 正文
android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现自定义drawable(shape)浅谈android的selector,背景选择器
跟之前两篇的规则一样,我依然会使用V7包来实现Actionbar,涉及到到不同API的区别时,我会标注说明的。关于V7包的使用方法,还是详见这篇博客。
首先给大家截图一张,展示一下今天要展示的四种情况。
首先,我们点击 Dark 这个按钮,看看Actionbar的样式是如何的,效果如下图:
如图所示,背景黑色,字体为白色。如何实现这个效果呢?只需要在AndroidManifest.xml文件中,对其对应的Activity进行如下设置(如何实现Actionbar的使用,请看这篇博客)
Theme.AppCompat 是V7包中自带的一种style样式,如果你要是使用API3.0以上的版本,可以直接使用SDK中自带的holo风格,相同效果的设置如下:
接下来,我们继续点击 Light 这个按钮,看看 Actionbar的样式如何,见图如下:
样式变为了白色背景,黑色字体,这就是传说中的 Holo.Light风格。activity的设置情况如下:
如果你的app是API3.0以上的版本,那么可以直接设置如下:
我们继续点击按钮,这次我们点击 DarkActionBar这个按钮,看看效果如何:
效果变成了,整个页面的风格是Holo.Light风格,但是Actionbar部分是dark风格的。
上面三种情况,就是使用系统自带的三种的主题效果,直接调用即可,非常简单。下面,我来给大家介绍一下更有意思的设定,就是自定义actionbar的主题效果,你想要怎样便怎样,一切由你做主哦。
首先我们点击第一幅截图当中的最后一个按钮,Custom,让我们来看看,我DIY的这套actionbar的主题效果如何,请看图:
哈哈~ 是不是丑的无法入目啊。 不过这套几乎没有任何颜色搭配感的主题效果,却是用到了几个关键的知识点。下面我来给大家讲一下如何DIY Actionbar的主题。
首先在项目工程中的values文件夹下,新建一个theme.xml的文件。然后在这个文件内,写入以下xml代码:
然后在AndroidManifest.xml文件中,对相应的activitiy进行如下设置:
将我们自定义好的 CustomActionBarTheme 这个style 设置给该activity. 这样,运行,就可以看到刚才DIY的效果了。接下来,我给大家讲解以下这个xml文件当中几个关键知识点的应用。
首先我们可以看到,这套自定义主题的效果是,actionbar的背景为橘黄色,导航TAB的背景色为绿色。这个是如何实现呢?需要这两段代码的设置:
我们将 actionBarStyle的属性设置为自定义的MyActionBar,而自定义的MyActionBar,需要设置它的继承样式,parent="@style/Widget.AppCompat.ActionBar",接下来有六个item的设置选项,其中最后三项和前三项的目的是一样的,只不过是为了兼容低版本而进行的设置。
android:background 设置的是actionbar的背景色,android:backgroundStacked设置的是导航TAB的背景颜色,android:titleTextStyle设置的是actionbar 标题的字体样式,我们将这个字体样式设置为自定义的MyActionBarTitleText,在这个样式当中,我们将标题的颜色设置为黑色&item name="android:textColor"&@android:color/black&/item&。
接下来,我们继续观察,在这个自定义的效果当中,actionbar的item的字体颜色为绿色,而导航TAB的字体颜色为蓝色。这样的实现效果是这么设置的:
android:actionMenuTextColor 设置的是每个actionbar
item的字体颜色,我们将其设为绿色。 android:actionBarTabTextStyles 设置的是导航TAB的字体样式,我们将其设为自定义的style MyActionBarTabText ,在这个自定义的style当中,我们设置导航TAB的字体颜色为蓝色:
这样一来,我们就把自定义字体颜色部分讲完了。我们继续观察,在这个自定义的主题效果当中,我们会发现,actionbar 的item之间没有分割线divider,导航TAB之间,也没有分割线divider,要实现这样的效果,其实也很简单,
首先我们设置&item name="android:actionBarDivider"&@null&/item& 将actionbar的分割线的图品引用设为空,这样一来,actionbart的item之间便不会显示分割线了。然后我们再设置&item name="android:actionBarTabBarStyle"&@style/MyActionBarTabBars&/item&
在这个自定义的MyActionBarTabBars的style当中,我们如下设置:
将TAB之间的分割线设为不再显示,这样,导航TAB之间也不会再有分割线了。
可能有些童鞋在开发当中,希望能够改变导航TAB下面游标的颜色,不愿使用默认的蓝色,比如像下面截图所示:
如图所示,我将导航TAB的游标颜色,由默认的蓝色,变成了紫色,是不是挺好玩的。那么这该怎么玩呢?嘿嘿,代码来喽:
刚刚我们在讲如何设置TAB背景的时候,我们用到了这个设置:&item name="android:backgroundStacked"&@android:color/holo_green_dark&/item&,现在我们需要把这段设置给屏蔽掉,然后在刚才的xml代码中设置设个属性:
&item name="android:actionBarTabStyle"&@style/MyActionBarTabs&/item&,然后在 MyActionBarTabs这个自定义的style当中,做如下设置:
这样的话,我们就可以替换掉默认的蓝色游标,改为我们自己想要的颜色了。至于这个背景图片应该怎么弄,我一般都是用9patch工具,设计几张不同状态的图片。下面的截图是我设计的图片,截图太小,可能看不清楚,大家明白大概意思就行了,回头自己随意DIY即可:
以上就是关于DIY Actionbar主题的几个关键知识点,大家看完后,有没有想立刻DIY的冲动呢!
另外上面的xml设置,都是针对V7包的使用者,如果你的开发版本,是API3.0以上的用户,那么你还需要对上面的设置稍作修改,举个例子:
在这段代码中,我们设置 parent的继承是 Widget,AppCompat.ActionBar.TabView,如果你是API3.0以上的开发版本,你需要改为:Widget.Holo.ActionBar.TabView,没错,想必你也看出来了,就是把AppCompat这个包名改为系统自带的Holo包名即可,其他的xml配置的修改情况,和这个类似,大家一一对比修改即可。
最后的最后,我再给大家介绍一个神级的网站:,我给大家看一下这个网站的神奇:
在这个网站的页面的右侧,是一个关于ActionBar的初始页面,而我们可以通过页面左侧的各种控制按钮,随意更换右侧的页面资源效果,不用你亲自调试XML文件,就可以DIY出来一套你想要的ActionBar主题。下面这幅截图是我随意DIY出来的:
当你在网页的左侧配置好你想要的效果之后,你就可以在网页的下面,有一个下载按钮,点击之后可以得到这套主题的所有XML配置文件和所用到的图片资源,不再需要你去设计了。是不是很神奇啊。附图两张:
这个网站美中不足的地方在于,不能够在页面的左侧修改Actionbar的字体颜色和大小,不过更改字体的知识点,我已经在这篇博客中给大家讲过了,如果大家有这方面的需求,那么就在这个网站生成的XML的基础上,再稍作修改就可以了。
好了,今天的内容就到此结束了。关于ActionBar系列,我已经连续分享了三篇,对于一般要求的开发,我想应该是可以应付了,所以这部分内容的讲解,我打算先暂时告一段落了。如果还有其它方面的要求和问题,大家可以给我留言,我们一起再来探讨解决。最后还是老样子,我把今天讲解的代码以及刚刚在那个网站上自动生成的资源文件,都统统上传到CSDN上面,分享给大家,希望大家能够多多支持,嘿嘿~
代码以及资源下载地址:
转自:http://blog.csdn.net/xy_nyle/article/details/
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 android 自定义shape 的文章

 

随机推荐