设为首页 加入收藏

TOP

Launcher知识的demo,手机管家小伙家与悬浮窗(六)
2015-07-20 17:30:30 来源: 作者: 【 】 浏览:19
Tags:Launcher 知识 demo 手机 管家 小伙 悬浮
cher(Context context) { super(context); LayoutInflater.from(context).inflate(R.layout.launcher, this); mRocket = (ImageView) findViewById(R.id.launcher_img); mRocketWith = mRocket.getLayoutParams().width; mRocketHeight = mRocket.getLayoutParams().height; } /** * 是否是发射状态 * @param isReadyLaunch */ public void updateRocketLaucher(boolean isReadyLaunch){ mRocket.setImageResource(isReadyLaunch?R.drawable.launcher_bg_fire:R.drawable.launcher_bg_hold); } }
package com.pzf.flow;

import java.lang.reflect.Field;

import android.content.Context;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
 * 悬浮框类
 * 1.显示内存使用情况
 * 2.移动悬浮框,位置改变  OnTouch();
 * 3.移动小悬浮框,变成小火箭 updateView() updateStatus();
 * 4.移动到发射台,小火箭发射 LaunchTask
 * @author pangzf
 * @time 2014年10月11日 上午11:23:48
 */
public class SmallView extends LinearLayout {
	
	private Context mContext;
	private int statusBarHeight;
	private float mXInView;
	private float mYInView;
	private float mXDownInScreen;
	private float mYDownInScreen;
	private float mXInScreen;
	private float mYInScreen;
    /** 
     * 小悬浮窗的参数 
     */  
    private WindowManager.LayoutParams mParams;
	public int viewWidth;
	public int viewHeight;
	private WindowManager mWindowManager;
	private LinearLayout view;  
	private boolean isPressed;
	private ImageView mIvRocket;
	private int rocketWidth;
	private int rocketHeight;

	public SmallView(Context context) {
		super(context);
		this.mContext=context;
		mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
		LayoutInflater.from(context).inflate(R.layout.small, this);
		view = (LinearLayout) findViewById(R.id.ll_small_main);
		viewWidth = view.getLayoutParams().width;
		viewHeight = view.getLayoutParams().height;
	
		mIvRocket = (ImageView) findViewById(R.id.rocket_img);
		rocketWidth = mIvRocket.getLayoutParams().width;
		rocketHeight = mIvRocket.getLayoutParams().height;
		
		TextView mTvPercent = (TextView) view
				.findViewById(R.id.tv_small_percent);
		mTvPercent.setText(MyWindowManager.getUserPercent(context));
	}
	  
    /** 
     * 将小悬浮窗的参数传入,用于更新小悬浮窗的位置。 
     *  
     * @param params 
     *            小悬浮窗的参数 
     */  
    public void setParams(WindowManager.LayoutParams params) {  
        mParams = params;  
    } 

	// 做单击处理和移动small位置
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN:
			
			isPressed=true;
			mXInView = event.getX();
			mYInView = event.getY();
			mXDownInScreen = event.getRawX();
			mYDownInScreen = event.getRawY() - getStatusBarHeight();
			mXInScreen = event.getRawX();
			mYInScreen = event.getRawY()-getStatusBarHeight();
			break;
		case MotionEvent.ACTION_MOVE:
			//移动small
			mXInScreen=event.getRawX();
			mYInScreen=event.getRawY() - getStatusBarHeight();
			updateStatus();
			updateView();
			break;
		case MotionEvent.ACTION_UP:
			isPressed=false;
			if(MyWindowManager.isReadyToLaunch()){
				//
首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 10452 Marcus, help!( DFS ) 下一篇Cannot generate texture from bi..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)
·整理了250个shell脚 (2025-12-26 07:53:29)
·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)