重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
elevation 设置阴影需要注意两点:
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、巴彦淖尔网络推广、微信小程序开发、巴彦淖尔网络营销、巴彦淖尔企业策划、巴彦淖尔品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供巴彦淖尔建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
1、view需要设置背景
2、阴影是绘制在父控件上的,子控件和父控件之间要留空隙,用padding也不行
在开发过程中有过这样的布局:
我子Linearlayout是设置的圆角背景,结果这样的效果是:只有圆角的便便才有一丁点的阴影,原因是父布局设置的是padding,子控件是match_parent,空隙不足导致,将子布局改为margin,去掉父控件的padding就行了
Android自定义边框,可以设置任意边框的角度和阴影。我下面分为 四个角度设置边框、两个角度设置边框、半圆球设置边框加两层阴影等。
效果图:
效果图:
效果图:
若是直接将阴影和雪块平台一起切图,则会发生图片难以定位,及图片拉伸的问题
虽然可以通过 比例大法 解决,但是比较复杂
直接实现阴影似乎复杂度也比较高
可以将描边及阴影一起切图,然后 制作成 点九图,(见《Android Studio 制作点九图》) ,当做背景填充即可
首先定义一个style
style name="Theme.IOSched" parent="android:style/Theme.Light"
item name="android:windowNoTitle"true/item
item name="android:windowContentOverlay"@null/item
/style
然后在AndroidManifest.xml里面,针对需要去掉阴影的Activity使用该style
activity android:label="@string/app_name" android:name=".MainActivity" android:theme="@style/Theme.IOSched"
自定义listview的时候,当你不使用android:cacheColorHint="#00000000" 会出现下面选中一个空间黑色底色的情况,破坏整体美观度:
当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:
ListView是一个经常要用到的android控件,现总结遇到过的一些美化的小细节。
1、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来
解决:在XML中加入
android:scrollingCache="false" 或 android:cacheColorHint="#00000000"
2、listview的上边和下边有黑色的阴影
解决: android:fadingEdge="none"
3、修改listview的Item默认选择时的黄色背景
解决:在java文件中使用listview.setSelector()方法,或使用如下代码
android:listSelector="#00000000"//这样写是透明的,也可加入Drawable图片
4、lsitview的每一项之间需要设置一个图片做为间隔
解决: android:divider=”@drawable/list_driver”
设置阴影需要按照以下步骤:
1、设置eleavation值;
2、添加一个背景或者outline。
可以在xml中通过定义一个背景来设置outline:
TextView
android:id="@+id/myview"
...
android:elevation="2dp"
android:background="@drawable/myrect" /
!-- res/drawable/myrect.xml --
shape xmlns:android=""
android:shape="rectangle"
solid android:color="#42000000" /
corners android:radius="5dp" /
/shape
也可以通过代码来创建一个outline:
/* Get the size of the shape from resources. */
int shapeSize = getResources().getDimensionPixelSize(R.dimen.shape_size);
/* Create a circular outline. */
mOutlineCircle = new Outline();
mOutlineCircle.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 2);
/* Create a rectangular outline. */
mOutlineRect = new Outline();
mOutlineRect.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 10);