在
PhoneWindowManager中添加如下方法
private static final int END_ANIMATION = 101;
private static final int PREPARE_ANIMATION = 102;
private static final int PLAY_ANIMATION = 103;
private AnimateCharContainer container = null;
private AnimationEndCallBack mEndCallBack = new AnimationEndCallBack() {
@Override
public void onAnimationEnd() {
// TODO Auto-generated method stub
myHandler.sendEmptyMessage(END_ANIMATION);
}
};
private void PrepareGestureAnimation(){
if(container == null){
container = new AnimateCharContainer(mContext);
container.setEndCallBack(mEndCallBack);
}
container.setKeyCode(mKeycode);
if(container != null){
WindowManager wm = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE);
try{
wm.removeView(container);
}catch (Exception e){
}
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
lp.type = WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;
lp.flags = WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
lp.format = PixelFormat.OPAQUE;
lp.setTitle("SmartWake");
lp.inputFeatures |= WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL;
wm.addView(container, lp);
container.setVisibility(View.VISIBLE);
return;
}
}
AnimateCharContainer类
package android.widget;
import com.android.internal.R;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.view.Gravity;
import android.os.Handler;
import android.os.Message;
public class AnimateCharContainer extends LinearLayout {
private static String TAG = "AnimateCharContainer";
private static final int MSG_DISMISS_VIEW = 0x01;
private static final long ANIMATION_DURATION = 600L;
private int IMAGE_WIDTH_NOR