android开发小技巧(2)背景按钮等布局的好朋友shape应用
现在给大家说说android中我布局文件一定会用到的一个小技巧:shape
说到这个东西,本人也是醉了,因为本人是自学的android,开始的时候按钮按下松开这种效果是整俩图片放项目里,用这种
backImgBut.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// 更改为按下时的背景图片
((ImageButton) v).setImageDrawable(getResources()
.getDrawable(R.drawable.return_down));
} else if (event.getAction() == MotionEvent.ACTION_UP) {
// 改为抬起时的图片
((ImageButton) v).setImageDrawable(getResources()
.getDrawable(R.drawable.return_normal));
}
return false;
}
});
这种本办法弄成动画,然后到公司之后,领导说,你这样不行,太占资源了,用用shape。然后才知道还有这么好用的技术。然后就一发不可收拾,界面基本上都是用上了shape。这个东西相当于美化按钮,布局什么的,挺有用的,我这里大致写一些,大家可以去搜索一下,有很多文章介绍。废话不说了。先上一张图
这个按钮用shape写的,具体是这样的:代码
shezhi_btn_selector这个文件就是大功臣,看看都有啥:代码
<?xml version="1.0" encoding="utf-8"?>
android:endColor="#ff3200"
android:angle="270" />
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
android:endColor="#ff3200"
android:angle="270" />
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
android:endColor="#ff3333"
android:angle="270" />
android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp"
android:bottomRightRadius="2dp"
/>
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
里面的各项我就不解释了,就说说用法。比如
1: 我把
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:bottomRightRadius="10dp"
/> 就等于
-------------------------------------------------------------------------------------------------------传说中的分割线------------------------------------------------------------------------------------------------
颜色就不说了,在这里修改就行
android:endColor="#ff3200"
android:angle="270" /> 解释一下,如果android:startColor="#ff3200"//红色 android:endColor="#008000" //绿色 就是这种效果:
明白了吧,你可以把按下的startColor endColor两种颜色设置相反,就可以得到这种效果:常态
按下的时候:
比图片方便多了吧。
-------------------------------------------------------------------------------------传说中的分割线---------------------------------------------------------------------------------------------------------------------------
然后布局文件也可以用,看看布局文件:
<?xml version="1.0" encoding="utf-8"?>
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"/>
android:color="#8FBC8F" />
效果:
单一的看不出什么效果来,但是可以嵌套的,比如,背景是一个颜色,列表是一个颜色,这都是可以的。例如下面的效果:
比较精细的地方也都可以使用此布局文件,写的比较乱,大家可以自己总结下,基本上改改代码就搞定了,其实用shape布局方面也不是多难,也是可以做出比较精细的布局的。
更多相关文章
- android activity切换翻转效果
- android shape的使用详解以及常用效果(渐变色、分割线、边框、半
- Android ViewPager+Fragment 实现画廊效果(一屏多Fragment)
- android Animation动画效果基础
- Android RecyclerView 的瀑布流式布局