1. 程式人生 > >【安卓筆記】popupWindow使用淺析

【安卓筆記】popupWindow使用淺析

package com.example.popupwindowdemo;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout.LayoutParams;
import android.widget.PopupWindow;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener
{
    private PopupWindow pw = null;
    private Button but_pos = null;
    private Button but_neg = null;
    
    private Button but_show = null;
    
    private int screenWidth = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        screenWidth = getWindowManager().getDefaultDisplay().getWidth();
        but_show = (Button) findViewById(R.id.but_show);
        but_show.setOnClickListener(this);
    }
    
    public void initPopupWindow()
    {
        View view = getLayoutInflater().inflate(R.layout.layout_popup_window,null);
        but_pos = (Button) view.findViewById(R.id.but_pos);
        but_neg = (Button) view.findViewById(R.id.but_neg);
        but_neg.setOnClickListener(this);
        but_pos.setOnClickListener(this);
        
        pw = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,true);
        pw.setWidth(screenWidth*3/4);
        pw.setBackgroundDrawable(new BitmapDrawable());
    }
    @Override
    public void onClick(View v)
    {
        switch (v.getId())
        {
        case R.id.but_neg:
            Toast.makeText(this,"取消", 0).show();
            pw.dismiss();
            break;
        case R.id.but_pos:
            Toast.makeText(this,"開始下載", 0).show();
            pw.dismiss();
            break;
        case R.id.but_show:
            initPopupWindow();
            //顯示在指定位置
            pw.showAtLocation(findViewById(R.id.root),Gravity.CENTER,0,0);
            //預設顯示在指定的view左下,可以指定偏移量,這裡讓其顯示在中間
//            pw.showAsDropDown(but_show,(screenWidth-pw.getWidth())/2,0);
            break;
        }
    }
}
顯示效果:

相關推薦

筆記popupWindow使用淺析

package com.example.popupwindowdemo; import android.app.Activity; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import androi

筆記GestureDetector淺析

package com.example.gesturedetectordemo; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.GestureDetec

筆記ormlite入門

base 字段 tool uil nali ews 文檔 實例 自增 ps:寫這篇文章的目的是嘗試下新的markdown編輯器哈哈 簡單介紹 ORMLite provides a lightweight Object Relational Ma

筆記AsyncTask

public abstract class AsyncTask<Params, Progress, Result> 泛型引數:     Params:執行後臺任務所需的引數。比如如果你是網路操作的話,maybe需要傳入一個uri     Progress:後臺任務執行的進度。比如下載進度,通

筆記WebView控制元件使用

wv.loadUrl("file:///android_asset/test1.html");   (2)遠端資源:     直接將地址字串傳入即可。 wv.loadUrl("http://blog.csdn.net");注意,訪問遠端資源必須加上許可權: <uses-permission and

筆記Volley全方位解析,帶你從原始碼的角度徹底理解

轉載請宣告原出處(blog.csdn.net/chdjj),謝謝! -------------------------- 參考資料 1.http://www.codekk.com/open-source-project-analysis/detail/Android/g

筆記自定義view之組合控制元件

組合控制元件即將若干個系統已有的控制元件組合到一塊形成一個組合控制元件,比如帶返回按鈕的標題欄就是一個最簡單的組合控制元件。 使用組合控制元件的好處是提高程式碼的複用性,一處定義多處使用。 下面我們

筆記Fragment

如何建立Fragment? Fragment通常建立在activity下,如果我們希望建立一個Fragment,可以在activity對應的佈局檔案中增加fragment節點(就跟清單檔案一樣),然

筆記非同步載入大量圖片

package cn.edu.chd.utils; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; /** * @author Row

筆記ViewPager+Fragment佈局中的Fragment資料更新

這裡可能是GC回收掉了代表選項卡1的Fragment1物件,這時當我們滑會第一個介面時,重新建立了Fragment。這顯然不是我們期望的效果。 下面說下我的解決方案: 介面卡中應該提供一個設定介面卡資料的方法,這個方法可以向介面卡填充新的資料,並remove掉舊的資料。 按照這個思路,我們重構下M

筆記ArrayAdapter刪除item注意事項

ArrayAdapter提供了remove方法可以刪除資料來源中的資料,並使介面重新整理。下面是其原始碼: public void remove(T object) { synchronized (mLock) { if (mOrig

Activity2

主配置文件 安卓 activity androi 標簽 命令 方法 create 使用 Activity與界面 1.Activity相當於瀏覽器的標簽。相當於空白的網頁,界面相當於瀏覽器內的網頁。 2.將Activity與界面綁定就相當於

時間、日期選擇器3

ear hour getc enable pic style min 判斷 eight TimePicker(時間選擇器) 方法 描述 Integer getCurrentHour () 返回當前設置的小時 Integer getCurren

下拉列表框3

pan activity border cin left 資源 pro 內容 1.0 Spinner(下拉列表框) 方法 描述 CharSequence getPrompt () 取得提示文字 void setPrompt(CharSeque

高級控件5——信息提示框、對話框

make 安卓 com log list 股市 message bundle gif Toast信息提示框 1 Button bt1=(Button)findViewById(R.id.Tbt01); 2 Button bt2=(Button)findViewByI

高級控件6—— Gallery

access java pac body hide andro 分享 圖片 cep Gallery畫廊 Gallery控件與Spinner類相似,都是AbsSpinner類的子類。 Spinner顯示的是一個垂直列表選擇,Gallery顯示的是一個水平列表選擇框,(允許用

XML文件解析7——SAX解析

try 讀取資源文件 結束 文件解析 簡單 put log 空間 img XML文件解析 XML解析:XML技術是Android平臺的應用基礎,   Android提供了多種解析XML的方式:SAX解析、DOM解析、PULL解析 SA

文件操作8

raw 定義 resources andro 功能 getx spa android數據 vid 文件操作    android數據存儲方式 SharedPreferences存儲 文件存儲 SQLite數據庫存儲 ContentProvider存儲 網絡存儲    

SD卡操作8

roo extern 檢查 return tdi 程序 equal 針對 ron 讀寫SD卡   Context類的openFileInput和openFileOutput方法都是針對應用程序的數據文件夾進行的文件操作,由於手機的ROM容量有限,因此這種操作有一定局限性。

9SQLite數據庫

發的 動態 管理 可靠性 數據庫文件 其他應用 odbc 平臺 php SQLite 是一個開源的嵌入式關系數據庫,實現自包容、零配置、支持事務的SQL數據庫引擎。它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。 其特點是高度便攜、使用方便、結構緊湊、高