android dialog 模拟新浪、腾讯title弹框效果
2012-07-19 17:51
330 查看
首先我们看一下新浪微博的效果(其它就是一个dialog):
![](http://my.csdn.net/uploads/201207/19/1342690609_6347.png)
![](http://my.csdn.net/uploads/201207/19/1342690560_3778.png)
点击title前 点击title后
实现方式:
首先我们要自定义一个dialog
代码如下:
我们只需要在activity中调用即可:
代码片段:
![](http://my.csdn.net/uploads/201207/19/1342691095_8672.png)
![](http://my.csdn.net/uploads/201207/19/1342691116_1072.png)
![](http://my.csdn.net/uploads/201207/19/1342691137_3122.png)
![](http://my.csdn.net/uploads/201207/19/1342691158_8631.png)
点击前 点击后 选择 选择后
实现起来也不难,有点要说明一下,这里我们用到了.9.png图片,这个图片会自动根据需要伸展,(重要的是不失真,这点很棒吧,详细介绍请点击连接).
源码下载
![](http://my.csdn.net/uploads/201207/19/1342690609_6347.png)
![](http://my.csdn.net/uploads/201207/19/1342690560_3778.png)
点击title前 点击title后
实现方式:
首先我们要自定义一个dialog
代码如下:
/*** * 自定义dialog * * @author jia * */ public class MyDialog extends Dialog { private Window window = null; /*** * * @param context * @param layoutResID * 配置文件 * @param x * 显示的x坐标 * @param y * 显示的y坐标 * @param title * 集合 */ public MyDialog(final Context context, int layoutResID, int x, int y, final String[] title) { super(context, R.style.Transparent); window = this.getWindow(); window.requestFeature(Window.FEATURE_NO_TITLE); setContentView(layoutResID); int width = this.getWindow().getWindowManager().getDefaultDisplay() .getWidth(); windowDeploy(width / 2, 300, x, y); show(); } /*** * 设置窗口显示 * * @param x * @param y * @param dialog_x * @param dialog_y */ public void windowDeploy(int dialog_width, int dialog_height, int dialog_x, int dialog_y) { window.setBackgroundDrawableResource(android.R.color.transparent); // 设置对话框背景为透明 WindowManager.LayoutParams wl = window.getAttributes(); wl.width = dialog_width; wl.height = dialog_height; // wl.alpha = 0.8f; wl.gravity = Gravity.LEFT | Gravity.TOP; // 不设置的话默认是居中 wl.x = dialog_x - dialog_width / 2; // 要显示的位置x坐标 wl.y = dialog_y; window.setAttributes(wl); window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画 setCanceledOnTouchOutside(true); } }
我们只需要在activity中调用即可:
代码片段:
textView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int x_begin = textView.getLeft(); int x_end = textView.getRight(); int y_begin = textView.getTop(); int y_end = textView.getBottom();// 这个是要显示位置的纵坐标 // 获取最中间的x坐标 int x = (x_begin + x_end) / 2;// 这个值也就是屏幕最中间的值,也可以下面这样 // int x=getWindowManager().getDefaultDisplay().getWidth()/2; // int[] location = new int[2]; // textView.getLocationInWindow(location); // 获取在当前窗口内的绝对坐标 // textView.getLocationOnScreen(location);// 获取在整个屏幕内的绝对坐标 myDialog = new MyDialog(DialogDemoActivity.this, R.layout.dialog, x, y_end, title); View view = LayoutInflater.from(DialogDemoActivity.this) .inflate(R.layout.dialog, null); listView = (ListView) myDialog.getWindow().findViewById( R.id.lv_dialog); listView.setAdapter(new ArrayAdapter<String>( DialogDemoActivity.this, R.layout.text, R.id.tv_text, title)); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { textView.setText(title[arg2]); myDialog.cancel(); myDialog = null; } }); } });实现效果如下:
![](http://my.csdn.net/uploads/201207/19/1342691095_8672.png)
![](http://my.csdn.net/uploads/201207/19/1342691116_1072.png)
![](http://my.csdn.net/uploads/201207/19/1342691137_3122.png)
![](http://my.csdn.net/uploads/201207/19/1342691158_8631.png)
点击前 点击后 选择 选择后
实现起来也不难,有点要说明一下,这里我们用到了.9.png图片,这个图片会自动根据需要伸展,(重要的是不失真,这点很棒吧,详细介绍请点击连接).
源码下载
相关文章推荐
- android dialog 模拟新浪、腾讯title弹框效果
- android popupwindow 模拟新浪、腾讯title弹框效果
- [Android]popupwindow 模拟新浪、腾讯title弹框效果
- popupwindow 模拟新浪、腾讯title弹框效果
- popupwindow 模拟新浪、腾讯title弹框效果
- android popupwindow 仿新浪、腾讯title弹框效果
- popupwindow 模拟新浪、腾讯title弹框效果
- android模拟新浪腾讯title选项卡
- android 分页Title栏滑块效果--ActionBar(模拟网易 腾讯等动态效果)
- Android 提交或者上传数据时的dialog弹框动画效果
- Android Exception Type "share_dialog_title" is not translated in en, zh-rTW strings
- android自定义Dialog弹框和背景阴影显示
- Android模拟翻书效果
- 模拟title提示效果
- Android翻页效果原理实现之模拟扭曲
- Android模拟HOME键返回效果的方法
- android四大组件之一广播notification(通知)的Title模拟下载
- android 中FragmentActivity中模拟返回键返回上一个Activity效果
- android设置dialog显示和activity进入退出的动画效果
- Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果