注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

Android自定义Dialog对话框  

2013-10-20 18:57:22|  分类: delphi xe5 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Android自定义Dialog对话框  

很多时候,可能Android默认的几种Dialog对话框已经不能满足我们的需求,我们需要自定义自己的Dialog对话框,包括样式的改变,功能的改变等等。今天,我给出一个Android自定义Dialog的例子,大家可以看看,如果这个自定义dialog的方法能够用得上,那我们完全可以定义出非常富有个性的dialog对话框了,先看一个自定义的dialog对话框效果图吧,很简单,只有一个Activity,当点击Button的时候就弹出这个自定义的Dialog

里面的几张图都比较丑,我不多会美工,随便用powerpoint画了几张图,原理是一样的,先不计较这些。下面正入正题

为了照顾到所有的码农,在些把所有的代码都贴出来

新建工程在此就不贴出来了,只是为了方便大家的复制粘贴,取包名为com.and.mydialog,主Activity取名为MyDialogActivity


 里面的几张图都比较丑,我不多会美工,随便用powerpoint画了几张图,原理是一样的,先不计较这些。下面正入正题

为了照顾到所有的码农,在些把所有的代码都贴出来

新建工程在此就不贴出来了,只是为了方便大家的复制粘贴,取包名为com.and.mydialog,主Activity取名为MyDialogActivity

 package com.and.mydialog;   
 import android.app.Activity; 
 import android.app.AlertDialog; 
 import android.app.Dialog; 
 import android.content.DialogInterface; 
 import android.os.Bundle; 
 import android.view.KeyEvent; 
 import android.view.LayoutInflater; 
 import android.view.Menu; 
 import android.view.MenuItem; 
 import android.view.View; 
 import android.view.View.OnClickListener;
import android.widget.Button; 
import android.widget.Toast;   
public class MyDialogActivity extends Activity {     
/** Called when the activity is first created. 
*/    @Override   
public void onCreate(Bundle savedInstanceState) 
{         
super.onCreate(savedInstanceState);        
setContentView(R.layout.main);        
Button button = (Button) findViewById(R.id.button1);      
button.setOnClickListener(new OnClickListener() {               
@Override            
public void onClick(View v) {                                  
//初始化一个自定义的Dialog                 
Dialog dialog = new MyDialog(MyDialogActivity.this,                        
R.style.MyDialog);                   
dialog.show();             
}         
});       
} } 
主布局文件main.xml

 <?xml version="1.0" encoding="utf-8"?> 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
 android:orientation="vertical" 
 android:layout_width="fill_parent"    
 android:layout_height="fill_parent">     
 <Button         
 android:text="显示自定义Dialog"         
 android:id="@+id/button1"        
 android:layout_height="wrap_content"         
 android:layout_width="fill_parent"/> 
 </LinearLayout> 
新建一个自定义的Dialog类,取名MyDialog,继承自Dialog

 package com.and.mydialog;   
 import android.app.Dialog; 
 import android.content.Context; 
 import android.os.Bundle; 
 import android.view.LayoutInflater; 
 import android.view.View;   
 public class MyDialog extends Dialog 
 {       
 Context context;     
 public MyDialog(Context context)
 {         
 super(context);         
 // TODO Auto-generated constructor stub         
 this.context = context;     
 }     
 public MyDialog(Context context, int theme)
 {         
 super(context, theme);         
 this.context = context;     
 }     
 @Override    
 protected void onCreate(Bundle savedInstanceState) 
 {         
 // TODO Auto-generated method stub         
 super.onCreate(savedInstanceState);         
 this.setContentView(R.layout.dialog);     
 }   
 } 
相应的布局文件dialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
android:orientation="vertical"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content"    
android:gravity="center_vertical|center_horizontal"    
android:background="@drawable/dialog_bg">    
<RelativeLayout         
android:layout_width="fill_parent"        
android:layout_height="wrap_content"        
android:paddingLeft="30dip"        
android:paddingTop="10dip">         
<ImageView             
android:id="@+id/dialog_title_image"            
android:layout_alignParentLeft="true"            
android:layout_width="wrap_content"            
android:layout_height="wrap_content"            
android:background="@drawable/dialog_title_image"/>         
<TextView             
android:layout_width="wrap_content"            
android:layout_height="wrap_content"            
android:layout_marginLeft="10dip"            
android:layout_centerInParent="true"            
android:text="Title"            
android:layout_toRightOf="@id/dialog_title_image"            
android:textColor="#000000"            
android:textSize="30sp"/>               
</RelativeLayout>     
<TextView             
android:layout_width="fill_parent"            
android:layout_height="1dip"            
android:background="@drawable/lins"            
android:layout_marginTop="5dip"/>     
<TextView         
android:layout_width="fill_parent"        
android:layout_height="wrap_content"        
android:text="This is a custom dialog"        
android:textColor="#000000"        
android:layout_marginTop="10dip"        
android:layout_marginLeft="30dip"/>     
<RelativeLayout         
android:layout_width="fill_parent"        
android:layout_height="wrap_content"        
android:paddingTop="10dip"        
android:gravity="bottom|center_horizontal"        
android:paddingBottom="10dip">         
<Button             
android:id="@+id/dialog_button_cancel"            
android:layout_alignParentLeft="true"            
android:layout_width="100dip"            
android:layout_height="wrap_content"            
android:text="确定"/>         
<Button             
android:id="@+id/dialog_button_ok"            
android:layout_width="100dip"            
android:layout_height="wrap_content"            
android:layout_toRightOf="@id/dialog_button_cancel"            
android:layout_marginLeft="35dip"           
android:text="取消"/>     
</RelativeLayout> 
</LinearLayout> 
最主要的,是自定义的Style,我们自定义一个式样,用来改变默认的Dialog样式

在values文件夹下新建一个styles.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<resources>     
<style name="MyDialog" 
parent="@android:Theme.Dialog">         
<item name="android:windowFrame">@null</item>        
<item name="android:windowNoTitle">true</item>          
<item name="android:windowBackground">@drawable/dialog_bg</item>         
<item name="android:windowIsFloating">true</item>         
<item name="android:windowContentOverlay">@null</item>    
</style> 
</resources> 
这样应该就OK了,为了方便大家测试本示例,在此一并附上不怎么好看的素材

好了,这样我们的自定义dialog就基本完成了,虽然是难看了点,但是基本思路就是这样了,美工好的同学可以用这个思路去写一个比较漂亮的android自定义dialog对话框。

  评论这张
 
阅读(863)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017