真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android中怎么自定義對話框位置及大小

Android中怎么自定義對話框位置及大小,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)的客戶來自各行各業(yè),為了共同目標(biāo),我們在工作上密切配合,從創(chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對我們的要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。專業(yè)領(lǐng)域包括成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、電商網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺(tái)開發(fā)。

代碼:

package angel.devil;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;
public class DialogDemoActivity extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Dialog dialog = new Dialog(this);
    // setContentView可以設(shè)置為一個(gè)View也可以簡單地指定資源ID
    // LayoutInflater
    // li=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
    // View v=li.inflate(R.layout.dialog_layout, null);
    // dialog.setContentView(v);
    dialog.setContentView(R.layout.dialog_layout);
    dialog.setTitle("Custom Dialog");
    /*
     * 獲取圣誕框的窗口對象及參數(shù)對象以修改對話框的布局設(shè)置,
     * 可以直接調(diào)用getWindow(),表示獲得這個(gè)Activity的Window
     * 對象,這樣這可以以同樣的方式改變這個(gè)Activity的屬性.
     */
    Window dialogWindow = dialog.getWindow();
    WindowManager.LayoutParams lp = dialogWindow.getAttributes();
    dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
    /*
     * lp.x與lp.y表示相對于原始位置的偏移.
     * 當(dāng)參數(shù)值包含Gravity.LEFT時(shí),對話框出現(xiàn)在左邊,所以lp.x就表示相對左邊的偏移,負(fù)值忽略.
     * 當(dāng)參數(shù)值包含Gravity.RIGHT時(shí),對話框出現(xiàn)在右邊,所以lp.x就表示相對右邊的偏移,負(fù)值忽略.
     * 當(dāng)參數(shù)值包含Gravity.TOP時(shí),對話框出現(xiàn)在上邊,所以lp.y就表示相對上邊的偏移,負(fù)值忽略.
     * 當(dāng)參數(shù)值包含Gravity.BOTTOM時(shí),對話框出現(xiàn)在下邊,所以lp.y就表示相對下邊的偏移,負(fù)值忽略.
     * 當(dāng)參數(shù)值包含Gravity.CENTER_HORIZONTAL時(shí)
     * ,對話框水平居中,所以lp.x就表示在水平居中的位置移動(dòng)lp.x像素,正值向右移動(dòng),負(fù)值向左移動(dòng).
     * 當(dāng)參數(shù)值包含Gravity.CENTER_VERTICAL時(shí)
     * ,對話框垂直居中,所以lp.y就表示在垂直居中的位置移動(dòng)lp.y像素,正值向右移動(dòng),負(fù)值向左移動(dòng).
     * gravity的默認(rèn)值為Gravity.CENTER,即Gravity.CENTER_HORIZONTAL |
     * Gravity.CENTER_VERTICAL.
     *
     * 本來setGravity的參數(shù)值為Gravity.LEFT | Gravity.TOP時(shí)對話框應(yīng)出現(xiàn)在程序的左上角,但在
     * 我手機(jī)上測試時(shí)發(fā)現(xiàn)距左邊與上邊都有一小段距離,而且垂直坐標(biāo)把程序標(biāo)題欄也計(jì)算在內(nèi)了,
     * Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM與Gravity.RIGHT都是如此,據(jù)邊界有一小段距離
     */
    lp.x = 100; // 新位置X坐標(biāo)
    lp.y = 100; // 新位置Y坐標(biāo)
    lp.width = 300; // 寬度
    lp.height = 300; // 高度
    lp.alpha = 0.7f; // 透明度
    // 當(dāng)Window的Attributes改變時(shí)系統(tǒng)會(huì)調(diào)用此函數(shù),可以直接調(diào)用以應(yīng)用上面對窗口參數(shù)的更改,也可以用setAttributes
    // dialog.onWindowAttributesChanged(lp);
    dialogWindow.setAttributes(lp);
    /*
     * 將對話框的大小按屏幕大小的百分比設(shè)置
     */
//    WindowManager m = getWindowManager();
//    Display d = m.getDefaultDisplay(); // 獲取屏幕寬、高用
//    WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 獲取對話框當(dāng)前的參數(shù)值
//    p.height = (int) (d.getHeight() * 0.6); // 高度設(shè)置為屏幕的0.6
//    p.width = (int) (d.getWidth() * 0.65); // 寬度設(shè)置為屏幕的0.65
//    dialogWindow.setAttributes(p);
    dialog.show();
  }
}

布局文件:

main.xml



  

dialog_layout.xml



  
  

關(guān)于Android中怎么自定義對話框位置及大小問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


新聞名稱:Android中怎么自定義對話框位置及大小
標(biāo)題來源:http://weahome.cn/article/ggoegs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部