Android Implementation Imitation Iphonedialog implementation similar to iphone dialog box style

Source: Internet
Author: User

Continued: the words of brother and hair Brother in Shanghai to do Android development, it seems that the gap with the Big Brother. summed up the release of the elder brother of the technology come here to use the force.

Reference here: http://blog.csdn.net/xiechengfa/article/details/40373331

Package Com.zf.iosdialog;import Java.util.arraylist;import Android.app.activity;import android.os.Bundle;import Android.view.view;import Android.view.view.onclicklistener;import Android.widget.button;import Android.widget.toast;import Com.zf.iosdialog.bean.sheetitem;import Com.zf.iosdialog.widget.iosdialog;public Class Mainactivity extends Activity implements Onclicklistener, Onsheetmyitemclicklistner {private button Btn1;private button Btn2;private button btn3;private button btn4;private button btn5;/*** * weixinnumber:lixiaodaoaaa weibo:www.weibo.com/ LIXIAODAOAAA Thanks *: XIECHENGFA */@Overrideprotected void onCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (R.layout.activity_main); Initview ();} private void Initview () {btn1 = (button) Findviewbyid (R.ID.BTN1); Btn1.setonclicklistener (this); btn2 = (Button) Findviewbyid (R.ID.BTN2); Btn2.setonclicklistener (this); btn3 = (Button) Findviewbyid (R.ID.BTN3); Btn3.setonclicklistener (this); btn4 = (Button) findviEwbyid (R.ID.BTN4); Btn4.setonclicklistener (this); btn5 = (Button) Findviewbyid (R.ID.BTN5); Btn5.setonclicklistener ( this);} @Overridepublic void OnClick (View v) {switch (V.getid ()) {case R.id.btn5:iosdialog Iosdialog = new Iosdialog (mainactivity . this); arraylist<sheetitem> listsheetitems = new arraylist<sheetitem> (); Listsheetitems.add (New SheetItem (" Shabi001 ", 1)); Listsheetitems.add (New Sheetitem (" shabi002 ", 2)); Listsheetitems.add (New Sheetitem (" shabi003 ", 3)); Listsheetitems.add (New Sheetitem ("shabi004", 4)), Listsheetitems.add (New Sheetitem ("shabi005", 5)); Listsheetitems.add (New Sheetitem ("shabi006", 6)); Iosdialog.setsheetitems (Listsheetitems, mainactivity.this); Iosdialog.show (); break;default:break;}} @Overridepublic void Onclickitem (int which) {switch (which) {case 1:toast.maketext (this, "lixiaodaoaaa001", Toast.length_short). Show (); Break;case 2:toast.maketext (This, "lixiaodaoaaa002", Toast.length_short). Show (); Case 3:toast.maketext (This, "lixiaodaoaaa003", Toast.lengtH_short). Show (); Break;case 4:toast.maketext (This, "lixiaodaoaaa004", Toast.length_short). Show (); Break;case 5: Toast.maketext (This, "lixiaodaoaaa005", Toast.length_short). Show (); Break;case 6:toast.maketext (This, " lixiaodaoaaa006 ", Toast.length_short). Show (); break;default:break;}}}

Iosdialog code (against this effect)


Package Com.zf.iosdialog.widget;import Java.util.list;import Android.app.dialog;import android.content.Context; Import Android.graphics.color;import Android.view.display;import Android.view.gravity;import Android.view.layoutinflater;import Android.view.view;import Android.view.view.onclicklistener;import Android.view.window;import Android.view.windowmanager;import Android.widget.linearlayout;import Android.widget.linearlayout.layoutparams;import Android.widget.scrollview;import Android.widget.TextView;import Com.zf.iosdialog.onsheetmyitemclicklistner;import Com.zf.iosdialog.r;import Com.zf.iosdialog.bean.SheetItem; public class Iosdialog {private Context context;private Dialog dialog;private TextView txt_title;private TextView Txt_can Cel;private linearlayout llayout_content;private ScrollView slayout_content;private boolean showtitle = False;private list<sheetitem> listsheetitems;private Display display;public iosdialog (context context) {This.context = context ; WindowManager WINDOWMAnager = (WindowManager) context.getsystemservice (context.window_service);d isplay = Windowmanager.getdefaultdisplay (); Builder ();} Public Iosdialog Builder () {//Get dialog layout view view = Layoutinflater.from (context). Inflate (R.layout.view_actionsheet, NULL);//Set Dialog minimum width to screen width view.setminimumwidth (display.getwidth ());//Get custom Dialog layout controls Slayout_content = ( ScrollView) View.findviewbyid (r.id.slayout_content); llayout_content = (linearlayout) View.findviewbyid ( r.id.llayout_content); txt_title = (TextView) View.findviewbyid (r.id.txt_title); txt_cancel = (TextView) View.findviewbyid (R.id.txt_cancel); Txt_cancel.setonclicklistener (new Onclicklistener () {@Overridepublic void OnClick (View v) {Dialog.dismiss ();}}); /define Dialog layout and Parameters Dialog = new Dialog (context, R.style.actionsheetdialogstyle);d ialog.setcontentview (view); Window Dialogwindow = Dialog.getwindow ();d ialogwindow.setgravity (Gravity.left | Gravity.bottom); Windowmanager.layoutparams LP = Dialogwindow.getattributes (); lp.x = 0;LP.Y = 0;dialogwindow.seTattributes (LP); return this;} Public Iosdialog Settitle (String title) {Showtitle = True;txt_title.setvisibility (view.visible); Txt_title.settext ( title); return this;} Public Iosdialog setcancelable (Boolean cancel) {dialog.setcancelable (cancel); Public Iosdialog Setcanceledontouchoutside (Boolean cancel) {dialog.setcanceledontouchoutside (cancel); /** set entry layout */public void Setsheetitems (list<sheetitem> sheetitemlist, Final Onsheetmyitemclicklistner Itemlisenner) {this.listsheetitems = sheetitemlist;if (sheetitemlist = = NULL | | sheetitemlist.size () <= 0) {return;} int size = Sheetitemlist.size ();//TODO height control, non-optimal solution//Add entry too much when control height if (size >= 7) {Linearlayout.layoutparams params = (layoutparams) Slayout_content.getlayoutparams ();p arams.height = Display.getheight ()/2;slayout_ Content.setlayoutparams (params);} Loop add entry for (int i = 1; I <= size; i++) {final int index = i;final Sheetitem Sheetitem = Sheetitemlist.get (i-1); String stritem = Sheetitem.getstriteMname (); TextView TextView = new TextView (context); Textview.settext (stritem); textview.settextsize; Textview.setgravity ( Gravity.center);//Background image if (size = = 1) {if (showtitle) {Textview.setbackgroundresource (r.drawable.actionsheet_bottom_ selector);} else {textview.setbackgroundresource (r.drawable.actionsheet_single_selector);}} else {if (showtitle) {if (I >= 1 && i < size) {Textview.setbackgroundresource (r.drawable.actionsheet_middle _selector);} else {textview.setbackgroundresource (r.drawable.actionsheet_bottom_selector);}} else {if (i = = 1) {Textview.setbackgroundresource (r.drawable.actionsheet_top_selector);} else if (i < size) {TextView. Setbackgroundresource (r.drawable.actionsheet_middle_selector);} else {textview.setbackgroundresource (r.drawable.actionsheet_bottom_selector);}}} Textview.settextcolor (Color.parsecolor (SheetItemColor.Blue.getName ()));//height float scale = context.getresources (). Getdisplaymetrics (). Density;int height = (int) (* scale + 0.5f); textview.setLayoutparams (New Linearlayout.layoutparams (layoutparams.match_parent, height));//Click event Textview.setonclicklistener (New Onclicklistener () {@Overridepublic void OnClick (View v) {Itemlisenner.onclickitem (Sheetitem.getitem_code ()); Dialog.dismiss ();}}); Llayout_content.addview (TextView);}} public void Show () {dialog.show ();} public interface Onsheetitemclicklistener {void OnClick (int which);} public enum Sheetitemcolor {Blue ("#037BFF"), Red ("#FD4A2E");p rivate string name;private sheetitemcolor (string name) { THIS.name = name;} Public String GetName () {return name;} public void SetName (String name) {this.name = name;}}}

this demo1: hit here, it's broken, I'm losing money, ^_^. Doug finishing Address 2 : Hit here, dot broken I also lose money





Android Implementation Imitation Iphonedialog implementation similar to iphone dialog box style

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.