
1.动画
定义位置:xml/anima包下
常用属性:
alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
fromXScale,fromYScale, 动画开始前X,Y的缩放,0.0为不显示, 1.0为正常大小
toXScale,toYScale, 动画最终缩放的倍数, 1.0为正常大小,大于1.0放大
pivotX, pivotY 动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始
2.阴影效果
(1)生成bitmap
Bitmap.createBitmap(width,height,Config.ARGB_8888)//创建符合w h的32位位图
若要修改位图颜色,则对位图中的每一帧进行颜色赋值:
<pre>
public static final Bitmap createRGBImage(Bitmap bitmap,int color)
{ int bitmap_w=bitmap.getWidth()
int bitmap_h=bitmap.getHeight()
int[] arrayColor=new int[bitmap_w bitmap_h]
int count=0
for(int i=0i<bitmap_hi++){
for(int j=0j<bitmap_wj++){
int color1=bitmap.getPixel(j,i)//获取某个位值处的颜色
//暂时我只是要处理除了透明的颜色,改变其他的颜色
if(color1!=0){
}else{
color1=color
}
arrayColor[count]=color
count++
}
}
bitmap = Bitmap.createBitmap( arrayColor, bitmap_w, bitmap_h, Config.ARGB_4444 )
return bitmap
}
</pre>
(2)通过BitmapHelper对图片进行压缩
BitmapHelper.scaledBitmap(bitmap,压缩率值小于1);
(3)
若是直接将阴影和雪块平台一起切图,则会发生图片难以定位,及图片拉伸的问题
虽然可以通过 比例大法 解决,但是比较复杂
直接实现阴影似乎复杂度也比较高
可以将描边及阴影一起切图,然后 制作成 点九图,(见《Android Studio 制作点九图》) ,当做背景填充即可
为控件设置一个有阴影感的背景图片即可,可以使用shape
在自定义shape中增加一层或多层,并错开,即可显示阴影效果。为增加立体感,按钮按下的时候,只设置一层。我们可以通过top, bottom, right 和 left 四个参数来控制阴影的方向和大小
//自定义两种阴影效果
第一种
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:left="4dp" android:top="4dp">
<shape>
<solid android:color="#ff58bb52"/>
<corners android:radius="30dip"/>
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list>
<!-- 第一层 -->
<item android:left="4dp" android:top="4dp">
<shape>
<solid android:color="#66000000"/>
<corners android:radius="30dip"/>
<!-- 描边 -->
<stroke android:width="1dp" android:color="#ffffffff"/>
</shape>
</item>
<!-- 第二层 -->
<item android:bottom="4dp" android:right="4dp">
<shape>
<solid android:color="#ff58bb52"/>
<corners android:radius="30dip"/>
<!-- 描边 -->
<stroke android:width="1dp" android:color="#ffffffff"/>
</shape>
</item>
</layer-list>
</item>
</selector>
第二种
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 点击之后 -->
<item android:state_pressed="true">
<layer-list>
<item android:left="4dp" android:top="4dp">
<shape>
<solid android:color="#ff58bb52"/>
<corners android:radius="3dp"/>
</shape>
</item>
</layer-list>
</item>
<!-- 正常状态 -->
<item>
<layer-list>
<!-- 第一层 -->
<item android:left="2dp" android:top="2dp">
<shape>
<solid android:color="#66000000"/>
<corners android:radius="3dp"/>
</shape>
</item>
<!-- 第二层 -->
<item android:bottom="4dp" android:right="4dp">
<shape>
<solid android:color="#ff58bb52"/>
<corners android:radius="3dp"/>
</shape>
</item>
<!-- 第三层 -->
<item android:bottom="6dp" android:right="6dp">
<shape>
<solid android:color="#ffcccccc"/>
<corners android:radius="3dp"/>
</shape>
</item>
</layer-list>
</item>
</selector>
设置后的效果图如下
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)