纯代码实现对话框

对话框自定义:相对布局的java代码实现
创建AlertDiaglog

Window window = dlg.getWindow()

创建布局,代码为相对布局

载入布局,载入相关空间,设置相关控件的位置

代码如下

        int bgImageViewID = 10;
        int iconImageViewID = 11;
        int textViewID = 12;
        int buttonOkID = 13;
        int buttonCancelID = 14;
        int srcImageViewId = 15;

        final AlertDialog dlg = new AlertDialog.Builder(this).create();
        dlg.show();
        Window window = dlg.getWindow();
        // 主要就是在这里实现这种效果的.
        RelativeLayout rLayout = new RelativeLayout(this);
        //设置背景
        ImageView bg_iv = new ImageView(this);
        bg_iv.setId(bgImageViewID);
        bg_iv.setImageResource(R.drawable.bg2);

        RelativeLayout.LayoutParams bgRelativeParams_iv = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        bgRelativeParams_iv.addRule(RelativeLayout.CENTER_HORIZONTAL);
        rLayout.addView(bg_iv, bgRelativeParams_iv);

        ImageView icon_iv = new ImageView(this);
        icon_iv.setId(iconImageViewID);
        icon_iv.setImageResource(R.drawable.egame_logo_icon);

        RelativeLayout.LayoutParams iconRelativeParams_iv = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        iconRelativeParams_iv.addRule(RelativeLayout.ALIGN_LEFT,bgImageViewID);
        iconRelativeParams_iv.addRule(RelativeLayout.ALIGN_TOP,bgImageViewID);
        rLayout.addView(icon_iv, iconRelativeParams_iv);

        TextView tv = new TextView(this);
        tv.setId(textViewID);
        tv.setText("XXXXXX");

        RelativeLayout.LayoutParams RelativeParams_tv = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        RelativeParams_tv.addRule(RelativeLayout.CENTER_HORIZONTAL,iconImageViewID);
        rLayout.addView(tv, RelativeParams_tv);

        ImageView src_iv = new ImageView(this);
        src_iv.setId(srcImageViewId);
        src_iv.setBackgroundResource(R.drawable.app_icon);

        RelativeLayout.LayoutParams srcRelativeParams_iv = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        srcRelativeParams_iv.addRule(RelativeLayout.CENTER_IN_PARENT,bgImageViewID);
        //RelativeParams_tv.addRule(RelativeLayout.ALIGN_TOP,bgImageViewID);
        rLayout.addView(src_iv, srcRelativeParams_iv);

        Button btn_ok = new Button(this);
        btn_ok.setId(buttonOkID);
        btn_ok.setBackgroundResource(R.drawable.submit);

        RelativeLayout.LayoutParams relativeParams_btn_ok = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        //RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)iv.getLayoutParams();

        relativeParams_btn_ok.addRule(RelativeLayout.ALIGN_BOTTOM,bgImageViewID);
        relativeParams_btn_ok.addRule(RelativeLayout.ALIGN_LEFT,bgImageViewID);
        rLayout.addView(btn_ok, relativeParams_btn_ok);

        Button btn_cancel = new Button(this);
        btn_cancel.setId(buttonCancelID);
        btn_cancel.setBackgroundResource(R.drawable.cancel);

        RelativeLayout.LayoutParams relativeParams_btn_cancel = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        relativeParams_btn_cancel.addRule(RelativeLayout.ALIGN_BOTTOM,bgImageViewID);
        relativeParams_btn_cancel.addRule(RelativeLayout.ALIGN_RIGHT,bgImageViewID);;
        rLayout.addView(btn_cancel, relativeParams_btn_cancel);

        //window.setContentView(R.layout.diag);
        window.setContentView(rLayout);
        // 为确认按钮添加事件,执行退出应用操作
        btn_ok.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

            }
        });

        // 关闭alert对话框架
        btn_cancel.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                dlg.cancel();
            }
        });

纯代码实现对话框

时间: 2024-11-26 08:53:02

纯代码实现对话框的相关文章

纯代码实现布局,对话框

对话框自定义:相对布局的java代码实现创建AlertDiaglogWindow window = dlg.getWindow()创建布局,代码为相对布局载入布局,载入相关空间,设置相关控件的位置代码如下 int bgImageViewID = 10;  int iconImageViewID = 11;  int textViewID = 12;  int buttonOkID = 13;  int buttonCancelID = 14;  int srcImageViewId = 15; 

纯代码 自动屏幕适配iPhone

代码判断,你也可以用xib自带的自动布局选项 我是用的纯代码写的 纯代码 自动屏幕适配iPhone,布布扣,bubuko.com

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中

Stroyboard(可视化界面)与纯代码

Stroyboard是苹果在 iOS 5 中引入的新技术,让纯代码变成了一个可视化的界面,让nib.xib有一种更加直观的展现,几十行甚至几百行的代码搞定的一个控件,现在只要动动手指就能完成一个控件了,初学者学到的绝大部分都是教你怎么使用StoryBoard的而不是怎么用纯代码,但是我自己更加喜欢纯代码,总觉得自己敲出来的代码更加能信任,修改起来也会更加简单. 一开始我以为纯代码跟可视化界面其实是一样的,看个人喜好选择用什么方法,后来查了资料发现,如果是一个大的项目,用可视化界面,那么团队就不能

iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)

iOS开发UI篇-以微博界面为例使用纯代码自定义cell程序编码全过程(一) 一.storyboard的处理 直接让控制器继承uitableview controller,然后在storyboard中把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线. 项目结构和plist文件 二.程序逻辑业务的处理 第一步,把配图和plist中拿到项目中,加载plist数据(非png的图片放到spooding files中) 第二步,字

搭建App主流框架_纯代码搭建(OC)

转载自:http://my.oschina.net/hejunbinlan/blog/529778?fromerr=EmSuX7PR 搭建主流框架界面 源码地址在文章末尾 达成效果 效果图 注:本文部分图标及效果图来自[IT江湖] https://github.com/itjhDev/itjh 导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是讨论主体框架的搭建,数据暂时没有添

swift UI专项训练41 用纯代码的方式实现stepper的值传递

之前讲过通过storyboard的方式捕获控件的值,现在我们来试试通过纯代码的方式来实现同样的功能.首先定义一个stepper和一个label,用label来显示stepper的当前值. self.priceStepper = UIStepper(frame: CGRectMake(150, 120, 100, 20)) self.priceStepper.minimumValue = 100//最小值 self.priceStepper.maximumValue = 2000//最大值 sel

ios 用纯代码写程序的时候,navigationController的导航栏的设置

我们都知道,如果用storyBoard设置导航栏很容易,点击左右item的时候,进入下一个界面,导航栏的颜色是跟上一层的是一样的,用纯代码写的时候,可以在当前控制器,和从当前控制器进入到下一个控制器都用代码实现对导航栏的控制,但是,每次都写代码设置,很麻烦,所以,可以这样: 创建一个MainTabBarController的类,在Appdelegate.m里面完成: - (BOOL)application:(UIApplication *)application didFinishLaunchi

纯代码实现CSS圆角

我这里说的是纯代码,是指的不使用图片实现圆角,图片实现圆角,这里就不说了. 纯代码实现圆角主要有3种方法: 第一种:CSS3圆角 #chaomao{     border-radius:2px 2px 2px 2px; } 上面代码的意思是左上.右上.右下.右下分别2px的圆角 当然也可以简写:border-radius:2px 方向是从左上到左下逆时针 也可以分别指定 #chaomao{     border-top-left-radius:4px 2px;     border-top-ri