wallpaperService图片动态化效果。。

Agoni_tt 2011-07-13 02:35:18
刚接触wallpaperService,现在想做个图片动态化效果。当手指在屏幕上移动,几张图片轮流更替,并随着手指移动的方向移动,最后手指放开时,图片定位。现在我写的是一张图片的效果,但效果不是我想的那样。当我点击屏幕时,图片就出现在点击的那个地方,放手后图片消失。希望大哥们帮帮忙。
小弟现阶段想在图片效果这一块深入点,大虾们有什么好的建议或者意见,方法之类的分享分享,感激不尽啊。。。。
下面是我写的代码:大虾们看看问题出在哪里,哪些地方要改进的,提一下:
...全文
508 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大掌教 2011-07-14
  • 打赏
  • 举报
回复
我实在懒得看你的代码。不过可以说下逻辑。需要获取坐标,并且要进行位移判定。看你的代码都没有对位移的判定,只有down和up。比如位移量大于15的时候画图片并打下标记,继续位移,大于15再画图片,up的时候选定最后一个图片,供参考
大掌教 2011-07-14
  • 打赏
  • 举报
回复
急是急不来的哦
Agoni_tt 2011-07-14
  • 打赏
  • 举报
回复
大虾没给点建议啊!
Agoni_tt 2011-07-13
  • 打赏
  • 举报
回复
就是那个onTouchEvent()时间的处理!大虾们帮帮忙。。。急急急!!谢谢。。
Agoni_tt 2011-07-13
  • 打赏
  • 举报
回复
public class WallPaperTest extends WallpaperService {
private final Handler handler=new Handler();

@Override
public Engine onCreateEngine() {
// TODO Auto-generated method stub
return new MyEngine();
}
class MyEngine extends Engine{
private final Paint mPaint=new Paint();
private float centerx;
private float centery;
private float mTouchx;
private float mTouchy;
private boolean mVisible;
Bitmap bm1;
Bitmap bm2;
Bitmap bm3;
Bitmap bm4;

private final Runnable myDraw =new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
draw();
}
};

@Override
public void onCreate(SurfaceHolder surfaceHolder) {
// TODO Auto-generated method stub
setTouchEventsEnabled(true);
bm1=BitmapFactory.decodeResource(getResources(),R.drawable.file_d);
super.onCreate(surfaceHolder);

}

@Override
public void onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction()==MotionEvent.ACTION_DOWN) {
mTouchx=event.getX();
mTouchy=event.getY();
draw();
} else if(event.getAction()==MotionEvent.ACTION_MOVE) {
mTouchx=event.getX();
mTouchy=event.getY();
draw();
}
else if(event.getAction()==MotionEvent.ACTION_UP){
undraw();
}
super.onTouchEvent(event);
}

@Override
public void onVisibilityChanged(boolean visible) {
// TODO Auto-generated method stub
mVisible=visible;
if (visible) {
draw();
}
else {
handler.removeCallbacks(myDraw);
}
}
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
centerx=width/2.0f;
centery=height/2.0f;
draw();
super.onSurfaceChanged(holder, format, width, height);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
handler.removeCallbacks(myDraw);
}
public void undraw(){
final SurfaceHolder holder=getSurfaceHolder();
Canvas c=holder.lockCanvas();
c.drawBitmap(bm1, mTouchx, mTouchy, mPaint);
holder.unlockCanvasAndPost(c);
if (mVisible) {
handler.postDelayed(myDraw, 1000);
}


}
public void draw(){

final SurfaceHolder holder=getSurfaceHolder();
Canvas c=holder.lockCanvas();

c.drawCircle(mTouchx, mTouchy, centerx, mPaint);

holder.unlockCanvasAndPost(c);

handler.removeCallbacks(myDraw);
if (mVisible) {
handler.postDelayed(myDraw, 1000);
}
}
}



}

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧