http://blog.csdn.net/jj120522/article/details/7764183
首先我们看一下新浪微博的效果(其它就是一个dialog):

点击title前 点击title后
实现方式:
首先我们要自定义一个dialog
代码如下:
- public class MyDialog extends Dialog {
- private Window window = null;
-
-
- 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();
-
- }
-
-
- 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.gravity = Gravity.LEFT | Gravity.TOP;
- wl.x = dialog_x - dialog_width / 2;
- 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();
-
- int x = (x_begin + x_end) / 2;
-
-
-
-
-
-
- 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;
- }
-
- });
- }
- });
实现效果如下:

点击前 点击后 选择 选择后
实现起来也不难,有点要说明一下,这里我们用到了.9.png图片,这个图片会自动根据需要伸展,(重要的是不失真,这点很棒吧,详细介绍请点击连接).
源码下载
android dialog 模拟新浪、腾讯title弹框效果
原文:http://www.cnblogs.com/wangluochong/p/4550903.html