直接效果图:

实现步骤:

1.主界面activity_main.xml非常easy,一个button

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/skin_background" >    <Button        android:id="@+id/show"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:gravity="center"        android:text="退出系统"        android:textSize="20sp" /></RelativeLayout>
2.弹出层样式actionsheet.xml

<?xml version="1.0" encoding="utf-8"?

><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/transparent" android:orientation="vertical" android:padding="5dp" > <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/actionsheet_top_normal" android:gravity="center" android:text="@string/title" android:textColor="#8F8F8F" android:textSize="16sp" /> <TextView android:id="@+id/content" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/actionsheet_bottom_selector" android:gravity="center" android:text="@string/content" android:textColor="#FD4A2E" android:textSize="16sp" /> <TextView android:id="@+id/cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@drawable/actionsheet_single_selector" android:gravity="center" android:text="@string/cancel" android:textColor="#037BFF" android:textSize="16sp" /></LinearLayout>

3.ActionSheet类

public class ActionSheet {public interface OnActionSheetSelected {void onClick(int whichButton);}private ActionSheet() {}public static Dialog showSheet(Context context, final OnActionSheetSelected actionSheetSelected,OnCancelListener cancelListener) {final Dialog dlg = new Dialog(context, R.style.ActionSheet);LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.actionsheet, null);final int cFullFillWidth = 10000;layout.setMinimumWidth(cFullFillWidth);TextView mContent = (TextView) layout.findViewById(R.id.content);TextView mCancel = (TextView) layout.findViewById(R.id.cancel);mContent.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubactionSheetSelected.onClick(0);dlg.dismiss();}});mCancel.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubactionSheetSelected.onClick(1);dlg.dismiss();}});Window w = dlg.getWindow();WindowManager.LayoutParams lp = w.getAttributes();lp.x = 0;final int cMakeBottom = 0;lp.y = cMakeBottom;lp.gravity = Gravity.CENTER;dlg.onWindowAttributesChanged(lp);dlg.setCanceledOnTouchOutside(false);if (cancelListener != null)dlg.setOnCancelListener(cancelListener);dlg.setContentView(layout);dlg.show();return dlg;}}
4.MainActivity

public class MainActivity extends Activity implements OnActionSheetSelected, OnCancelListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.show).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubActionSheet.showSheet(MainActivity.this, MainActivity.this, MainActivity.this);}});}@Overridepublic void onClick(int whichButton) {// TODO Auto-generated method stubswitch (whichButton) {case 0:showToast("确定");break;case 1:showToast("取消");break;default:break;}}@Overridepublic void onCancel(DialogInterface dialog) {// TODO Auto-generated method stubshowToast("取消");}private void showToast(CharSequence charSequence) {Toast.makeText(this, charSequence, Toast.LENGTH_SHORT).show();}}

源代码下载地址



版权声明:本文博客原创文章,博客,未经同意,不得转载。

更多相关文章

  1. Android之TabHost重定义
  2. android权限管理
  3. Android——ProgressDialog
  4. Android(安卓)UI控件详解-CheckBox(多选框)
  5. android UI布局练习3
  6. Android(安卓)自定义对话框
  7. Android(安卓)自定义时间选择器
  8. 【新版】Android技术博客精华汇总
  9. android上,实现直接在屏幕上显示点击位置,方便调试。

随机推荐

  1. IT网站收藏
  2. android 判断是否由adb调试进入页面 或直
  3. Android短信管理
  4. android 权限大全
  5. Android(安卓)SlidingMenu例子运行报错的
  6. android的五大布局详解
  7. 修改Android开机图片、动画、声音
  8. Kotlin Android(安卓)Studio入门学习研究
  9. android中常见的错误及解决办法
  10. Android(安卓)Notification通知栏、点击