首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android中怎么实现背景图的滚动

2012-04-03 
android中如何实现背景图的滚动android中如何实现背景图的滚动,哪个大侠知道给说一下[解决办法]背景图的滚

android中如何实现背景图的滚动
android中如何实现背景图的滚动,哪个大侠知道给说一下

[解决办法]
背景图的滚动?

public class main extends Activity {


AnimationDrawable animationDrawable;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView iv = (ImageView) findViewById(R.id.imageView1);
iv.setBackgroundResource(R.anim.myaction);
animationDrawable = (AnimationDrawable) iv.getBackground();
}

@Override
public boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {
animationDrawable.start();
return true;
}
return super.onTouchEvent(event);
}


//@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}

}
[解决办法]
你可以试一下这个demo
[解决办法]
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"><!-- true 表示播放完毕停止 false 无限循环播放 -->
<item android:drawable="@drawable/btn_style_alert_dialog_button_e" android:duration="500"/>
<item android:drawable="@drawable/btn_style_alert_dialog_button_normal" android:duration="500"/>
<item android:drawable="@drawable/btn_style_alert_dialog_button_pressed" android:duration="500"/>
</animation-list>
[解决办法]
这问题要回答起来太长了。。。。
public class PlayActivity extends Activity
{
Bitmap bitmap;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
[解决办法]
哎呀 没写好就回出来了
接下去 写咯

bitmap = BitmapFactory.decodeResource(PlayActivity.this.getResources(), R.drawable.gamebackground); // 获取背景

SurfaceView surfaceView = (SurfaceView) findViewById(R.id.gamesurface);//创建surfaceView
holder = surfaceView.getHolder();//SurfaceHolder The holder of the surface. 
holder.addCallback(new SurfaceHolder.Callback()//holder的回调函数
{
public void surfaceDestroyed(SurfaceHolder holder)//在surfaceview摧毁时调用
{
task.cancel();
}

public void surfaceCreated(SurfaceHolder holder)//在surfaceview被创建时调用
{
timer.schedule(task, 0, 50);
}

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)//在surfaceview发生改变时调用
{
}
});

task = new TimerTask()//定时器
{
@Override
public void run()
{
Canvas canvas = holder.lockCanvas(); // 锁定画布
CreatBackGround(canvas); // 创建 背景
holder.unlockCanvasAndPost(canvas);//画布解锁

}
};

}
public void CreatBackGround(Canvas canvas)
{
if (bitmap.isRecycled())
{
bitmap.recycle();//回收图片所占的内存
}

bitmapback = Bitmap.createBitmap(bitmap, 0, locationY, screenWith, screenHigh);// 创建缓冲区
locationY -= 1;// 背景移动
if (locationY <= 0) // 背景截图长度小于屏幕长度时 重置
{
locationY = imagehigh - screenHigh;
}
canvas.drawBitmap(bitmapback, 0, 0, null);// 将截屏绘制至画布
}
}

热点排行