Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android-自定義Dialog

Android-自定義Dialog

編輯:關於Android編程

Android-自定義Dialog


2014年4月27日 星期天 天氣晴朗 心情平靜 本篇博文來分享一個也是開發中經常需要用到的功能-自定義對話框,這裡我用到了Android中的圖形資源shape,具體使用方法,各位看代碼吧,Android有多鐘圖形資源,後面小巫也會總結分享出來,方便各位使用。 我們來看看自定義Dialog的具體步驟吧: 1.修改系統默認的Dialog樣式(風格、主題)
2.自定義Dialog布局文件
3.可以自己封裝一個類,繼承自Dialog或者直接使用Dialog類來實現,為了方便以後重復使用,建議自己封裝一個Dialog類
源碼下載:http://download.csdn.net/detail/wwj_748/7261031有興趣的朋友可以加本人創建的群,裡面有豐富的學習資源哦:299402133(移動開發狂熱者群)
效果圖: \ 具體實現代碼如下:
1. 修改樣式/04_CustomDialog/res/values喎?/kf/ware/vc/" target="_blank" class="keylink">vc3R5bGVzLnhtbDxiciAvPsztvNPS1M/CtPrC66O6PHByZSBjbGFzcz0="brush:java;">
2. 自定義Dialog
package com.wwj.custom.dialog;

import android.app.Dialog;
import android.content.Context;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;

/**
 * 自定義對話框
 * 
 * @author wwj
 * 
 */
public class CustomDialog extends Dialog {
	private static int default_width = 160; // 默認寬度
	private static int default_height = 120;// 默認高度

	public CustomDialog(Context context) {
		super(context);
	}

	public CustomDialog(Context context, int layout, int style) {
		this(context, default_width, default_height, layout, style);
	}

	public CustomDialog(Context context, int width, int height, int layout,
			int style) {
		super(context, style);
		// 設置內容
		setContentView(layout);
		// 設置窗口屬性
		Window window = getWindow();
		WindowManager.LayoutParams params = window.getAttributes();
		// 設置寬度、高度、密度、對齊方式
		float density = getDensity(context);
		params.width = (int) (width * density);
		params.height = (int) (height * density);
		params.gravity = Gravity.CENTER;
		window.setAttributes(params);

	}

	/**
	 * 獲取顯示密度
	 * 
	 * @param context
	 * @return
	 */
	public float getDensity(Context context) {
		Resources res = context.getResources();
		DisplayMetrics dm = res.getDisplayMetrics();
		return dm.density;
	}
}


3. 自定義布局/04_CustomDialog/res/layout/dialog_layout.xml


    

    


布局文件中用到了一個圖像資源:/04_CustomDialog/res/drawable/dialog_bg.xml



    

    



4. 顯示自定義對話框
package com.wwj.custom.dialog;

import android.app.Activity;
import android.os.Bundle;

/**
 * 1.修改系統默認的Dialog樣式(風格、主題)
 * 
 * 2.自定義Dialog布局文件
 * 
 * 3.可以自己封裝一個類,繼承自Dialog或者直接使用Dialog類來實現,為了方便以後重復使用,建議自己封裝一個Dialog類
 * 
 * @author wwj
 * 
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		CustomDialog customDialog = new CustomDialog(this,
				R.layout.dialog_layout, R.style.DialogTheme);
		customDialog.show();
	}

}





  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved