亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

在Android中動態添加Panel框架的實現代碼

2020-04-11 12:25:44
字體:
來源:轉載
供稿:網友
這里說是框架,說的大了點,其實沒有那么復雜,只是一個容易擴展的基類而已。不過至少算是框架類的代碼。
復制代碼 代碼如下:

package arui; 

import android.app.Activity; 
import android.os.Handler; 
import android.os.Looper; 
import android.os.Message; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup.LayoutParams; 
import android.view.ViewManager; 
import android.widget.FrameLayout; 

/**
 * Base class for panel.
 * 
 */ 
public abstract class BasePanel { 

    /**
     * left up position
     */ 
    public static final int LEFT_UP = 1; 

    /**
     * right up position
     */ 
    public static final int RIGHT_UP = 2; 

    /**
     * left bottom position
     */ 
    public static final int LEFT_BOTTOM = 3; 

    /**
     * right bottom position
     */ 
    public static final int RIGHT_BOTTOM = 4; 

    private static final int DEFAULT_MARGIN = 10; 

    private static final int SHOW_PANEL = 0; 

    private Activity activity; 

    private LayoutParams parameters; 

    private View view = null; 

    private int layoutId; 

    /**
     * constructor.
     * 
     * @param activity
     *            this panel will be attached to the activity
     * @param layoutId
     *            the panel's layout id
     */ 
    public BasePanel(Activity activity, int layoutId) { 
        this.activity = activity; 
        this.layoutId = layoutId; 
    } 

    /**
     * The developer can use this method to add the panel to the Activity.
     * 
     * @param act
     *            Activity
     * @param params
     *            LayoutParams
     */ 
    public void attach(LayoutParams params) { 
        parameters = params; 
        mHandler.sendMessage(mHandler.obtainMessage(SHOW_PANEL)); 

    } 

    /**
     * The developer can use this method to add the panel to the Activity.
     * 
     * @param act
     *            Activity
     * @param position
     *            int. You can use BasePanel.LEFT_UP,BasePanel.RIGHT_UP,
     *            BasePanel.RIGHT_BOTTOM or BasePanel.LEFT_BOTTOM.
     */ 
    public void attach(int position) { 
        attach(position, DEFAULT_MARGIN, DEFAULT_MARGIN, DEFAULT_MARGIN, 
                DEFAULT_MARGIN); 
    } 

    /**
     * The developer can use this method to add the panel to the Activity.
     * 
     * @param act
     *            Activity
     * @param position
     *            int. You can use BasePanel.LEFT_UP,BasePanel.RIGHT_UP,
     *            BasePanel.RIGHT_BOTTOM or BasePanel.LEFT_BOTTOM.
     * @param leftMargin
     *            int, left margin.
     * @param topMargin
     *            int, top margin.
     * @param rightMargin
     *            int, right margin.
     * @param bottomMargin
     *            int, bottom margin.
     * 
     */ 
    public void attach(int position, int leftMargin, int topMargin, 
            int rightMargin, int bottomMargin) { 
        FrameLayout.LayoutParams params = null; 
        params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT); 
        params.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); 
        switch (position) { 
        case LEFT_UP: 
            params.gravity = Gravity.LEFT; 
            break; 
        case RIGHT_UP: 
            params.gravity = Gravity.RIGHT; 
            break; 
        case LEFT_BOTTOM: 
            params.gravity = Gravity.LEFT | Gravity.BOTTOM; 
            break; 
        case RIGHT_BOTTOM: 
            params.gravity = Gravity.RIGHT | Gravity.BOTTOM; 
            break; 
        default: 
            break; 
        } 
        attach(params); 
    } 

    /**
     * The developer can use this method to remove the panel from the Activity.
     * 
     */ 
    public void remove() { 
        if (view != null) { 
            ViewManager mViewManager = (ViewManager) view.getParent(); 
            if (mViewManager != null) { 
                mViewManager.removeView(view); 
            } 
        } 
    } 

    private Handler mHandler = new Handler(Looper.getMainLooper()) { 

        @Override 
        public void handleMessage(Message msg) { 
            switch (msg.what) { 
            case SHOW_PANEL: 
                if (view == null) { 
                    LayoutInflater factory = LayoutInflater.from(activity); 
                    view = factory.inflate(layoutId, null); 
                } 
                dealwithPanel(view); 
                remove(); 
                activity.addContentView(view, parameters); 
                break; 
            } 
        } 

    }; 

    /**
     * do something with this panel.
     * 
     * @param view
     *            View of the panel
     */ 
    public abstract void dealwithPanel(View view); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
不卡伊人av在线播放| 国产色视频一区| 91精品国产91久久久久久| 中文字幕最新精品| 中文字幕视频在线免费欧美日韩综合在线看| 91精品在线影院| 欧美中文字幕在线播放| 91网站在线看| 少妇av一区二区三区| 亚洲国产美女久久久久| 国产精品成人一区二区三区吃奶| 久久电影一区二区| 人人做人人澡人人爽欧美| 国产精品日韩欧美综合| 国产一区私人高清影院| 国产亚洲精品高潮| 一区二区三区视频免费| 精品美女久久久久久免费| 91精品国产91久久久久久久久| 欧美视频13p| 日韩精品亚洲精品| 国产一区二区三区三区在线观看| 久久在线视频在线| 欧美极品美女视频网站在线观看免费| 亚洲free嫩bbb| 欧美激情精品久久久久久变态| 国产视频丨精品|在线观看| 日韩欧美亚洲国产一区| 欧美亚洲国产日本| 国产主播精品在线| 国产精品444| 韩国福利视频一区| 亚洲美女自拍视频| 久久青草福利网站| 欧美丝袜美女中出在线| 色狠狠久久aa北条麻妃| 国产精品男人爽免费视频1| 国精产品一区一区三区有限在线| 国产精品美女久久久久久免费| 亚洲国产日韩欧美综合久久| 国语自产精品视频在线看一大j8| 日韩精品极品毛片系列视频| 亚洲欧美精品suv| 九色精品美女在线| 精品一区二区三区电影| 欧美一区二区三区图| 麻豆乱码国产一区二区三区| 亚洲国产精品嫩草影院久久| 欧美精品videosex牲欧美| 69久久夜色精品国产69乱青草| 一区二区三区四区精品| 91亚洲永久免费精品| 久久久视频在线| 国模吧一区二区三区| 欧美成年人在线观看| 日韩在线播放一区| 国产精品久久激情| 亚洲第一区中文字幕| 国产欧美日韩专区发布| 中文精品99久久国产香蕉| 欧美午夜激情小视频| 国产视频精品在线| 日韩在线播放av| 欧美成人合集magnet| 91免费电影网站| 在线视频欧美性高潮| 亚洲精品久久久久久下一站| 92福利视频午夜1000合集在线观看| 在线观看亚洲视频| 中文字幕精品一区二区精品| 色婷婷av一区二区三区在线观看| 人人澡人人澡人人看欧美| 国产精品69精品一区二区三区| 久久的精品视频| 国产精品久久久久久久久久ktv| 欧美理论片在线观看| 国产伦精品免费视频| 久久手机免费视频| 欧美性猛交xxxx久久久| 欧美高清无遮挡| 欧美另类老女人| 欧美日韩免费区域视频在线观看| 国产999精品久久久影片官网| y97精品国产97久久久久久| 成人福利网站在线观看11| 69影院欧美专区视频| 亚洲激情视频网| 国产精品va在线播放| 日韩成人久久久| 深夜福利国产精品| 欧美日韩国产综合新一区| 亚洲精品色婷婷福利天堂| 91免费在线视频网站| 亚洲成av人乱码色午夜| 国产免费一区二区三区在线观看| 亚洲国产精品va| 国产精品爽爽ⅴa在线观看| 欧美午夜宅男影院在线观看| 国产原创欧美精品| 91精品国产高清久久久久久久久| 亚洲国模精品一区| 日韩高清av一区二区三区| 96精品久久久久中文字幕| 欧美性猛交xxxxx水多| 久久久91精品国产| 精品日本高清在线播放| 久久久久久九九九| 精品国产91久久久久久老师| 日韩av在线免播放器| 久久精品国产清自在天天线| 亚洲奶大毛多的老太婆| 亚洲图片在线综合| 日本中文字幕久久看| 欧洲s码亚洲m码精品一区| 午夜精品久久17c| 国产成人97精品免费看片| 日韩av一区二区在线观看| 日韩最新在线视频| 美女福利视频一区| 国产一区二区三区18| 国产精品专区一| 777国产偷窥盗摄精品视频| 久久色免费在线视频| 欧美精品久久一区二区| 91社影院在线观看| 亚洲第一精品福利| 日韩中文有码在线视频| 日韩欧美在线视频免费观看| 亚洲欧美一区二区三区久久| 中文字幕日韩在线播放| 欧美日韩亚洲一区二区三区| 久久综合网hezyo| 91精品国产91久久久久久| 久久久久久久爱| 成人激情免费在线| 欧美激情亚洲综合一区| 久久国产精品99国产精| 日本19禁啪啪免费观看www| 久久韩剧网电视剧| 国产精品吴梦梦| 日韩av片免费在线观看| 2018中文字幕一区二区三区| 中文国产亚洲喷潮| 久久久精品视频成人| www国产精品com| 久久精品成人欧美大片| 欧美日本黄视频| 日韩精品在线视频| 精品久久久久久久久久国产| 国产成人一区二区三区电影| 欧美精品午夜视频| 亚洲九九九在线观看| 国产视频久久久久| 九九热这里只有精品免费看| 国产一区二区黑人欧美xxxx| 久久久综合免费视频| 久久久国产精品x99av| 亚洲国产日韩欧美综合久久| 久久精品人人做人人爽| 亚洲精品欧美日韩| 91久久久久久久久久久| 4444欧美成人kkkk| 亚洲男人天堂久| 国产精品午夜一区二区欲梦|