超炫的3D桌面,多种奇效,TSF桌面演示版,现在分享给各位
超炫的3D桌面,多种特效,TSF桌面演示版,现在分享给各位
l 你是否也想开发3D应用, 但却苦于无从下手。
l 你是否曾被TSF SHELL绚丽的3D桌面吸引,你是不是也想自己动手做做。
l 前段时间用了不少时间,研究了一下它的实现方式,然后借助NB的libgdx,封装实现了一套快速开发类似3D应用的架构。
l 利用该架构,实现了一个仿TSF的桌面,效果还是不错。
l 在我800*480的山寨机上都能跑出很绚丽的效果,而且耗电情况也还可以接受。
l 请各位爷看看,顺便给点意见(素材直接copy TSF)
图片比较多,如果这边比较卡的话,可以到我的百度相册去看。
http://xiangce.baidu.com/picture/album/list/04402feb0ff8c029ff77abce2e7b961dc496981a
源码比较大,传不上来,需要的话,sagaofmoon@gmail.com
(俺仅在晚上出没)
/*
* 淡入淡出特效页面
*/
public class EffectFadeView extends SlideScreenView{
private final String TAG="EffectFadeView";
private float SPosition[],SColor[],STextureVet[],CurPosition[];
public EffectFadeView(VLayoutParams params,List<NAppInfo> mappInfoList) {
super(params,mappInfoList);
int count = ApageAppNumber*4*3;
CurPosition = new float[count];
for(int i = 0; i < count; i++){
CurPosition = SPosition;
}
}
@Override
public void InitSour(float[] Position, float[] Color, float[] TextureVet) {
SPosition = Position;
SColor = Color;
STextureVet = TextureVet;
}
@Override
public void StartExpend() {
}
@Override
public void StartShrink() {
}
@Override
public boolean TimeChangeVet() {
return false;
}
@Override
public void TouchChangeVet(float[] Position, float[] Color,
float[] TextureVet, float TouchX,int Screen) {
int view_width = mDisplayWidth2D;
int app_count = mApageAppNumber*4;
int i = 0;
//赋值
for(i = 0; i < CurPosition.length; i++){
Position = CurPosition;
}
for(i = 0; i < SColor.length; i++){
Color = SColor;
}
for(i = 0; i < STextureVet.length; i++){
TextureVet = STextureVet;
}
//根据触摸位置,改变透明度和大小
float Alf = (view_width - Math.abs(TouchX))/view_width;
TouchX -= view_width;
float Scale = (-TouchX)/view_width;
//改变大小与透明度
for(i = 0; i < app_count; i++) {
Position[i*3 + 0] *= Scale;
Position[i*3 + 1] *= Scale;
Position[i*3 + 2] *= Scale;
Color[i*4 + 3] = Alf;
Color[i*4 + 2] = Alf;
Color[i*4 + 1] = Alf;
Color[i*4 + 0] = Alf;
}
}
}
------解决思路----------------------
源码可以分享吗?
changsheng1005@vip.qq.com
l 你是否也想开发3D应用, 但却苦于无从下手。
l 你是否曾被TSF SHELL绚丽的3D桌面吸引,你是不是也想自己动手做做。
l 前段时间用了不少时间,研究了一下它的实现方式,然后借助NB的libgdx,封装实现了一套快速开发类似3D应用的架构。
l 利用该架构,实现了一个仿TSF的桌面,效果还是不错。
l 在我800*480的山寨机上都能跑出很绚丽的效果,而且耗电情况也还可以接受。
l 请各位爷看看,顺便给点意见(素材直接copy TSF)
图片比较多,如果这边比较卡的话,可以到我的百度相册去看。
http://xiangce.baidu.com/picture/album/list/04402feb0ff8c029ff77abce2e7b961dc496981a
源码比较大,传不上来,需要的话,sagaofmoon@gmail.com
(俺仅在晚上出没)
/*
* 淡入淡出特效页面
*/
public class EffectFadeView extends SlideScreenView{
private final String TAG="EffectFadeView";
private float SPosition[],SColor[],STextureVet[],CurPosition[];
public EffectFadeView(VLayoutParams params,List<NAppInfo> mappInfoList) {
super(params,mappInfoList);
int count = ApageAppNumber*4*3;
CurPosition = new float[count];
for(int i = 0; i < count; i++){
CurPosition = SPosition;
}
}
@Override
public void InitSour(float[] Position, float[] Color, float[] TextureVet) {
SPosition = Position;
SColor = Color;
STextureVet = TextureVet;
}
@Override
public void StartExpend() {
}
@Override
public void StartShrink() {
}
@Override
public boolean TimeChangeVet() {
return false;
}
@Override
public void TouchChangeVet(float[] Position, float[] Color,
float[] TextureVet, float TouchX,int Screen) {
int view_width = mDisplayWidth2D;
int app_count = mApageAppNumber*4;
int i = 0;
//赋值
for(i = 0; i < CurPosition.length; i++){
Position = CurPosition;
}
for(i = 0; i < SColor.length; i++){
Color = SColor;
}
for(i = 0; i < STextureVet.length; i++){
TextureVet = STextureVet;
}
//根据触摸位置,改变透明度和大小
float Alf = (view_width - Math.abs(TouchX))/view_width;
TouchX -= view_width;
float Scale = (-TouchX)/view_width;
//改变大小与透明度
for(i = 0; i < app_count; i++) {
Position[i*3 + 0] *= Scale;
Position[i*3 + 1] *= Scale;
Position[i*3 + 2] *= Scale;
Color[i*4 + 3] = Alf;
Color[i*4 + 2] = Alf;
Color[i*4 + 1] = Alf;
Color[i*4 + 0] = Alf;
}
}
}
------解决思路----------------------
源码可以分享吗?
changsheng1005@vip.qq.com