- 浏览: 122214 次
- 性别:
- 来自: 深圳
最新评论
-
T_bag:
...
TabHost 中的Activity执行顺序 -
ihopethatwell:
楼主,你能否写一个 int类型的一维数组的结构体?
linux NDK实例 -
gf_crazy:
刚好找第二种,其他地方全是第一种。
TabHost -
gangbener:
我们是可以把不同分辨率的图片放到不同的图片文件夹中去,问题是: ...
android程序中屏幕问题解决方案 -
shusanzhan:
学习了,Mark
android应用收费渠道
Android默认的PopupWindow和EditText的外观是矩形框,看起来不是太好,本示例通过设置布局View的背景和PopupWindowd对象的背景,实现有白色圆角边框的对话框效果和圆角文字编辑框。代码如下(关键部分是背景布局XML):
对话框弹出效果图:
- package com.test;
- import android.app.Activity;
- import android.content.Context;
- import android.os.Bundle;
- import android.text.InputType;
- import android.view.Gravity;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.PopupWindow;
- import android.widget.LinearLayout.LayoutParams;
- public class RoundCorner extends Activity {
- Button mButton;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // 定义按钮
- mButton = (Button) this.findViewById(R.id.Button01);
- mButton.setOnClickListener(new ClickEvent());
- // 两个圆角文字编辑框
- EditText et1 = (EditText) this.findViewById(R.id.roundedtext1);
- EditText et2 = (EditText) this.findViewById(R.id.roundedtext2);
- et1.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
- et2.setInputType(InputType.TYPE_NULL); //不显示软键盘
- }
- // 处理按键事件
- class ClickEvent implements OnClickListener {
- @Override
- public void onClick(View v) {
- if (v == mButton) {
- showRoundCornerDialog(RoundCorner.this, RoundCorner.this.findViewById(R.id.Button01));
- }
- }
- }
- // 显示圆角对话框
- public void showRoundCornerDialog(Context context, View parent) {
- LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- // 获取圆角对话框布局View,背景设为圆角
- final View dialogView = inflater.inflate(R.layout.popupwindow, null, false);
- dialogView.setBackgroundResource(R.drawable.rounded_corners_view);
- // 创建弹出对话框,设置弹出对话框的背景为圆角
- final PopupWindow pw = new PopupWindow(dialogView, 300, LayoutParams.WRAP_CONTENT, true);
- pw.setBackgroundDrawable(getResources().getDrawable(R.drawable.rounded_corners_pop));
- //注:上面的设背景操作为重点部分,可以自行注释掉其中一个或两个设背景操作,查看对话框效果
- //注:上面的设背景操作为重点部分,可以自行注释掉其中一个或两个设背景操作,查看对话框效果
- final EditText edtUsername = (EditText) dialogView.findViewById(R.id.username_edit);
- final EditText edtPassword = (EditText) dialogView.findViewById(R.id.password_edit);
- edtUsername.setHint("用户名..."); // 设置提示语
- edtPassword.setHint("密码..."); // 设置提示语
- // OK按钮及其处理事件
- Button btnOK = (Button) dialogView.findViewById(R.id.BtnOK);
- btnOK.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // 设置文本框内容
- edtUsername.setText("username");
- edtPassword.setText("password");
- }
- });
- // Cancel按钮及其处理事件
- Button btnCancel = (Button) dialogView.findViewById(R.id.BtnCancel);
- btnCancel.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- pw.dismiss();// 关闭
- }
- });
- // 显示RoundCorner对话框
- pw.showAtLocation(parent, Gravity.CENTER|Gravity.BOTTOM, 0, 0);
- }
- }
package com.test; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.InputType; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.PopupWindow; import android.widget.LinearLayout.LayoutParams; public class RoundCorner extends Activity { Button mButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 定义按钮 mButton = (Button) this.findViewById(R.id.Button01); mButton.setOnClickListener(new ClickEvent()); // 两个圆角文字编辑框 EditText et1 = (EditText) this.findViewById(R.id.roundedtext1); EditText et2 = (EditText) this.findViewById(R.id.roundedtext2); et1.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); et2.setInputType(InputType.TYPE_NULL); //不显示软键盘 } // 处理按键事件 class ClickEvent implements OnClickListener { @Override public void onClick(View v) { if (v == mButton) { showRoundCornerDialog(RoundCorner.this, RoundCorner.this.findViewById(R.id.Button01)); } } } // 显示圆角对话框 public void showRoundCornerDialog(Context context, View parent) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); // 获取圆角对话框布局View,背景设为圆角 final View dialogView = inflater.inflate(R.layout.popupwindow, null, false); dialogView.setBackgroundResource(R.drawable.rounded_corners_view); // 创建弹出对话框,设置弹出对话框的背景为圆角 final PopupWindow pw = new PopupWindow(dialogView, 300, LayoutParams.WRAP_CONTENT, true); pw.setBackgroundDrawable(getResources().getDrawable(R.drawable.rounded_corners_pop)); //注:上面的设背景操作为重点部分,可以自行注释掉其中一个或两个设背景操作,查看对话框效果 //注:上面的设背景操作为重点部分,可以自行注释掉其中一个或两个设背景操作,查看对话框效果 final EditText edtUsername = (EditText) dialogView.findViewById(R.id.username_edit); final EditText edtPassword = (EditText) dialogView.findViewById(R.id.password_edit); edtUsername.setHint("用户名..."); // 设置提示语 edtPassword.setHint("密码..."); // 设置提示语 // OK按钮及其处理事件 Button btnOK = (Button) dialogView.findViewById(R.id.BtnOK); btnOK.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 设置文本框内容 edtUsername.setText("username"); edtPassword.setText("password"); } }); // Cancel按钮及其处理事件 Button btnCancel = (Button) dialogView.findViewById(R.id.BtnCancel); btnCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { pw.dismiss();// 关闭 } }); // 显示RoundCorner对话框 pw.showAtLocation(parent, Gravity.CENTER|Gravity.BOTTOM, 0, 0); } }
1,圆角对话框的背景布局文件XML。
--------rounded_corners_pop.xml此为PopupWindow的背景布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#ffffffff" />
- <stroke android:width="3dp" color="#ffff8080" />
- <corners android:radius="10dp" />
- <padding android:left="3dp" android:top="3dp"
- android:right="3dp" android:bottom="3dp" />
- </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff" /> <stroke android:width="3dp" color="#ffff8080" /> <corners android:radius="10dp" /> <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" /> </shape>
--------rounded_corners_view.xml此为对话框内容的背景布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#ff606060" />
- <stroke android:width="3dp" color="#ffff8080" />
- <corners android:radius="10dp" />
- <padding android:left="5dp" android:top="5dp"
- android:right="5dp" android:bottom="5dp" />
- </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ff606060" /> <stroke android:width="3dp" color="#ffff8080" /> <corners android:radius="10dp" /> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" /> </shape>
2,圆角文字编辑框的三个布局XML文件
---------rounded_edittext_states.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_pressed="true"
- android:state_enabled="true"
- android:drawable="@drawable/rounded_focused" />
- <item
- android:state_focused="true"
- android:state_enabled="true"
- android:drawable="@drawable/rounded_focused" />
- <item
- android:state_enabled="true"
- android:drawable="@drawable/rounded_edittext" />
- </selector>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/rounded_focused" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/rounded_focused" /> <item android:state_enabled="true" android:drawable="@drawable/rounded_edittext" /> </selector>
----------rounded_edittext.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle"
- android:padding="8dip">
- <solid android:color="#FFFFFF"/>
- <corners
- android:bottomRightRadius="10dip"
- android:bottomLeftRadius="10dip"
- android:topLeftRadius="10dip"
- android:topRightRadius="10dip"/>
- </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="8dip"> <solid android:color="#FFFFFF"/> <corners android:bottomRightRadius="10dip" android:bottomLeftRadius="10dip" android:topLeftRadius="10dip" android:topRightRadius="10dip"/> </shape>
-----------rounded_edittext_focused.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle"
- android:padding="8dip">
- <solid android:color="#FFFFFF"/>
- <stroke android:width="2dip" android:color="#FF0000" />
- <corners
- android:bottomRightRadius="10dip"
- android:bottomLeftRadius="10dip"
- android:topLeftRadius="10dip"
- android:topRightRadius="10dip"/>
- </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="8dip"> <solid android:color="#FFFFFF"/> <stroke android:width="2dip" android:color="#FF0000" /> <corners android:bottomRightRadius="10dip" android:bottomLeftRadius="10dip" android:topLeftRadius="10dip" android:topRightRadius="10dip"/> </shape>
3,对话框的布局文件popupwindow.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent" android:layout_height="wrap_content"
- android:orientation="vertical">
- <TextView android:id="@+id/username_view"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:layout_marginLeft="10dip"
- android:layout_marginRight="10dip"
- android:text="用户名"
- android:textAppearance="?android:attr/textAppearanceMedium"/>
- <EditText android:id="@+id/username_edit"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:layout_marginLeft="10dip"
- android:layout_marginRight="10dip"
- android:capitalize="none"
- android:textAppearance="?android:attr/textAppearanceMedium" />
- <TextView android:id="@+id/password_view"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:layout_marginLeft="10dip"
- android:layout_marginRight="10dip"
- android:text="密码"
- android:textAppearance="?android:attr/textAppearanceMedium"/>
- <EditText android:id="@+id/password_edit"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:layout_marginLeft="10dip"
- android:layout_marginRight="10dip"
- android:capitalize="none"
- android:password="true"
- android:textAppearance="?android:attr/textAppearanceMedium" />
- <LinearLayout android:id="@+id/LinearLayout01"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:gravity="center"
- android:paddingLeft="10dip"
- android:paddingRight="10dip">
- <Button android:id="@+id/BtnOK"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="确定"/>
- <Button android:id="@+id/BtnCancel"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="取消"/>
- </LinearLayout>
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/username_view" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:text="用户名" android:textAppearance="?android:attr/textAppearanceMedium"/> <EditText android:id="@+id/username_edit" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:capitalize="none" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/password_view" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:text="密码" android:textAppearance="?android:attr/textAppearanceMedium"/> <EditText android:id="@+id/password_edit" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:capitalize="none" android:password="true" android:textAppearance="?android:attr/textAppearanceMedium" /> <LinearLayout android:id="@+id/LinearLayout01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center" android:paddingLeft="10dip" android:paddingRight="10dip"> <Button android:id="@+id/BtnOK" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="确定"/> <Button android:id="@+id/BtnCancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="取消"/> </LinearLayout> </LinearLayout>
4,主布局文件 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"
- android:paddingTop="10dip">
- <EditText android:id="@+id/roundedtext1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="圆角编辑框实例"
- android:padding="5dip"
- android:background="@drawable/rounded_edittext" />
- <!-- 此View为布局使用 -->
- <View android:layout_height="5dip" android:layout_width="fill_parent"/>
- <EditText android:id="@+id/roundedtext2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="聚焦可变边框颜色"
- android:padding="5dip"
- android:paddingTop="30dip"
- android:background="@drawable/rounded_edittext_states"/>
- <!-- 此View为布局使用 -->
- <View android:layout_height="5dip" android:layout_width="fill_parent"/>
- <Button android:id="@+id/Button01"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:text="弹出圆角对话框"/>
- </LinearLayout>
发表评论
-
android.os.NetworkOnMainThreadException
2011-12-24 13:14 1190不能在android的主线程中,执行一个网络操作 ... -
转载:为什么要对URI进行编码
2011-12-15 15:49 1012为什么需要Url编码,通常如果一样东西需要编码,说明这样东 ... -
multipart form-data boundary
2011-12-15 15:23 964含义 ENCTYPE="multipart/ ... -
android http 附件
2011-12-15 14:17 1600一:服务器端: 1:struts-config.xml ... -
post 附件
2011-12-15 10:24 961在做嘀咕客户端的时候,要实现拍照上传的功能。根据嘀咕api ... -
让Android应用获取系统权限
2011-12-08 18:46 969在 android 的API中有提供 SystemCloc ... -
Android源码目录结构详解
2011-12-01 20:22 788Android 2.1 |-- Makefile |-- ... -
两个activity跳转
2011-11-25 16:06 1227Activity A跳转到 Activity B /**A. ... -
线程同步之wait()/notify()的使用
2011-11-21 11:24 941wait()/notify() 通常,多 ... -
游戏中渲染线程与更新线程交替执行
2011-11-21 11:21 895private final State mThreadLock ... -
android colormatrix
2011-11-03 17:32 1463在编程中有时候需要 ... -
java栈,堆,池
2011-07-08 09:38 707今天复习了一下这些知识,顺便做了下笔记.1.寄存器:最快的存储 ... -
3D开发的境界
2011-06-04 20:12 685第一阶段:初学者阶 ... -
Http
2011-06-01 17:10 1270使用 HTTP 服务: 1. Apache HttpCline ... -
获取手机的Opengl的支持版本
2011-05-27 09:28 1442public int getGLVersion() { ... -
性能优化
2011-05-27 09:26 761如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集 ... -
Android游戏中其他语言数据类型之间的转换方法
2011-05-17 11:43 1186Java与其他语言数据类型之间的转换方法实例程序 /* ... -
android canvas.getClipBounds
2011-05-13 17:41 8398一种是传参数: Rect dstRect = new Re ... -
获取屏幕大小的方法
2011-05-13 17:38 572// one DisplayMetrics dm = n ... -
Android Lock 使用
2011-05-13 16:43 3146PowerManager 和PowerManager.Wa ...
相关推荐
不会使宿主activity组件失去焦点,也就是说PopupWindow弹出后,你可以与宿主activity进行交互,Dialog却不能做到这一点。 注意:PopupWindow组件的使用问题,PopupWindow是一个阻塞对话框,如果你直接在Activity创建...
这是一个Android使用Dialog制作popWindow气泡提示框的源代码例子,气泡提示是主动弹出,您可以通过此源码学习制作气泡view、气泡dialog、气泡显示内容的自定义,获取屏幕的宽和高,一些初始化代码: //设置...
PopWindow与Dialog效果比较,透明框的显示,用于点击菜单、加载显示、多选提示框等。
android的提示框主要有dialog和popwindow,这里面都有!!!
popWindow和Dialog 详解 以及具体使用 以及源码
PopWindow和Dialog 的详解 和具体使用 及具体示例
Dialog是我们做项目很常见的一项功能点了,一般的文字弹窗原生的dialog就可以帮我们实现,然而在实际开发过程中,因为弹窗布局较为复杂,充斥着各种控件,这时候原生的Dialog显然就不能满足我们的需求了,所以我们要...
popWindow和Dialog封装,实现了相同的效果,背景有蒙层
仿京东筛选 不是使用popwindow 和 dialog 做的
自定义单选、多选对话框及popwindow窗口实例源码.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Dialog布局比较固定,无法控制宽度,有些场景下不太时候使用,因此很受限,本demo只是一个简单的用例,可以根据自己的需求自定义布局,并实现其相关功能即可。
Android自定义显示内容的Dialog,有两种实现方式,一个继承Dialog,一个继承PopupWindow。
自定义右上角带叉号的Dialog ,自定义布局的dialog,支持点击事件
随意变化的气泡布局,Dialog根据点击View的位置定位它的位置,Dialog可定制方向等!(Bubble layout changes freely,Dialog click on the location of View positioning its location,Dialog can be customized ...
文档只做了视图方面,滚动后数据传回,可以改进!求好评!
各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果...
控制了窗口的大小当拖动窗口缩小的添加的空间大小时,窗口不会再缩小了,实现了formview dialog对话框的布局,还有就是点击菜单项切换界面,
Dialog、popWindow自定义样式比较