1、能够实现控件覆盖
2、会动的妹子
///使用定时器来发送信息更改动态
frame = (FrameLayout) findViewById(R.id.myframe);
// 定义一个定时器对象,定时发送信息给handler
new Timer().schedule(new TimerTask() {
@Override
public void run() {
// 发送一条空信息来通知系统改变前景图片
handler.sendEmptyMessage(0x123);
}
}, 0, 170);
///修改Framelayout 的布局:
Drawable g = getResources().getDrawable(R.drawable.s_7);
frame.setForeground(a);
3、能够拖动的妹子
使用触摸事件来重新绘画图片,并显示在framelayout上:
FrameLayout frame = (FrameLayout) findViewById(R.id.mylayout);
final MeziView mezi = new MeziView(MainActivity.this);
//为我们的萌妹子添加触摸事件监听器
mezi.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
//设置妹子显示的位置
mezi.bitmapX = event.getX();
mezi.bitmapY = event.getY();
//调用重绘方法
mezi.invalidate();
return true;
}
});
frame.addView(mezi);
//重写view控件来实现动态绘画图片:
public class MeziView extends View {
//定义相关变量,依次是妹子显示位置的X,Y坐标
public float bitmapX;
public float bitmapY;
public MeziView(Context context) {
super(context);
//设置妹子的起始坐标
bitmapX = 0;
bitmapY = 200;
}
//重写View类的onDraw()方法
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//创建,并且实例化Paint的对象
Paint paint = new Paint();
//根据图片生成位图对象
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.s_1);
//绘制萌妹子
canvas.drawBitmap(bitmap, bitmapX, bitmapY,paint);
//判断图片是否回收,木有回收的话强制收回图片
if(bitmap.isRecycled())
{
bitmap.recycle();
}
}
}