成都创新互联网站制作重庆分公司

android自定义dialog,android自定义dialog布局文件

自定义Dialog的详细步骤

第一步: 给Dialog设置一个风格主题: 无边框全透明背景

创新互联公司是一家集网站建设,伽师企业网站建设,伽师品牌网站建设,网站定制,伽师网站建设报价,网络营销,网络优化,伽师网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

在res-valus-styles.xml 下新建一个styles

style name="dialog" parent="android:style/Theme.Dialog"

        !--背景颜色及和透明程度--

        item name="android:windowBackground"@android:color/transparent/item

        !--是否去除标题 --

        item name="android:windowNoTitle"true/item

        !--是否去除边框--

        item name="android:windowFrame"@null/item

        !--是否浮现在activity之上  --

        item name="android:windowIsFloating"false/item

        !--背景是否模糊--

        item name="android:backgroundDimEnabled"false/item

    /style

第二步:新建自定义view 类 继承Dialog,在构造方法中引用刚才写好的styles(粗体部分)

public class MyDialog extends Dialog {

 public LoginRestltDialog(@NonNull Context context) {

             //引用样式

               super(context, R.style.dialog );

           }

 @Override

  protected void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           //引入布局

            setContentView(R.layout.dialog);

}

//定义其他需要的方法

}

第三步:创建布局

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

RelativeLayout xmlns:android=""

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#11ffffff"

LinearLayout

    android:layout_width="260dp"

    android:layout_height="wrap_content"

    android:layout_centerInParent="true"

    android:background="@drawable/dialog_share"

    android:orientation="vertical"

    TextView

        android:id="@+id/title"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:layout_margin="15dp"

        android:gravity="center"

        android:text="消息提示"

        android:textColor="#38ADFF"

        android:textSize="16sp" /

    TextView

        android:id="@+id/message"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="20dp"

        android:layout_marginRight="20dp"

        android:text="提示消息" /

    View

        android:layout_width="match_parent"

        android:layout_height="1px"

        android:layout_marginTop="15dp"

        android:background="#E4E4E4" /

    LinearLayout

        android:layout_width="match_parent"

        android:layout_height="40dp"

        android:orientation="horizontal"

        Button

            android:id="@+id/no"

            android:layout_width="0dp"

            android:layout_height="match_parent"

            android:layout_marginLeft="10dp"

            android:layout_weight="1"

            android:background="@null"

            android:gravity="center"

            android:singleLine="true"

            android:text="No"

            android:textColor="#7D7D7D"

            android:textSize="16sp" /

        View

            android:layout_width="1px"

            android:layout_height="match_parent"

            android:background="#E4E4E4" /

        Button

            android:id="@+id/yes"

            android:layout_width="0dp"

            android:layout_height="match_parent"

            android:layout_marginRight="10dp"

            android:layout_weight="1"

            android:background="@null"

            android:gravity="center"

            android:singleLine="true"

            android:text="Yes"

            android:textColor="#38ADFF"

            android:textSize="16sp" /

    /LinearLayout

/LinearLayout

/RelativeLayout

第四步:定义dialog的背景框

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

shape xmlns:android="" 

solid android:color="#ffffff" / 

stroke 

    android:width="0.8dp" 

    android:color="#ffffff" / 

!-- 圆角 -- 

corners android:radius="8dp" / 

/shape

最后在需要的地方调用即可

[Android] 自定义 Dialog 布局设置固定宽高无效

Dialog 的自定义布局的根布局的宽度是写固定的,显示的时候宽度和高度不是对应的固定值。

根布局外面又添加了一层 FrameLayout,设置其宽高均为 wrap_content 来包裹以前的布局。

这个时候猜测是否因为添加自定义视图的时候,布局参数被改写了,然后开始查看源码,最终发现确实是这样的。

在下面的源码分析中,最终发现也是用了 mWindow.setContentView(mAlertDialogLayout) 将 R.layout.alert_dialog.xml 的默认布局添加到 PhoneWindow, 和Activity一样的。

关键的地方看一下 setupCustomContent() 这个方法,在添加自定义视图的时候布局参数设置为 MATCH_PARENT 了,所以我们设置固定大小是没有作用的,要套一层父布局解决这个问题。

【Android】自定义全屏dialog

一、在themes.xml中添加自定义dialog的样式

二、创建dialog基类

三、创建自定义dialog的布局

四、创建自定义dialog

五、在activity中使用自定义dialog

如何自定义Android Dialog的样式?

Android 中自定义Dialog的样式,主要是通过自定义的xml,然后加载到dialog的背景中,如下步骤:

1、自定义Dialog

final Dialog dialog = new Dialog(this, R.style.Theme_dialog);

2、窗口布局

View contentView = LayoutInflater.from(this).inflate(R.layout.select_list_dialog,null);

3、把设定好的窗口布局放到dialog中

dialog.setContentView(contentView);

4、设定点击窗口空白处取消会话

dialog.setCanceledOnTouchOutside(true);

5、具体的操作

ListView msgView = (ListView)contentView.findViewById(R.id.listview_flow_list);

6、展示窗口

dialog.show();

例:

final Dialog dialog = new Dialog(this,R.style.Theme_dialog);

View contentView =LayoutInflater.from(this).inflate(R.layout.select_list_dialog, null);

dialog.setContentView(contentView);

dialog.setCanceledOnTouchOutside(true);

ListView msgView = (ListView)contentView.findViewById(R.id.listview_flow_list);

TextView titleText = (TextView)contentView.findViewById(R.id.title);

titleText.setText("请选择银行卡");

SelectBankCardDialogAdapter adapter =new SelectBankCardDialogAdapter(this, mBankcardList);

msgView.setAdapter(adapter);

msgView.setOnItemClickListener(newOnItemClickListener() {

@Override

public void onItemClick(AdapterViewparent, View view, int position, long id) {

//Toast.makeText(RechargeFlowToMobileActivity.this,

// position+"",0).show();

mSelectCard =mBankcardList.get(position);

String area = mSelectCard.getBank_card();

mCardNumberText.setText(area);

dialog.dismiss();

}

});

Button closeBtn = (Button)contentView.findViewById(R.id.close);

closeBtn.setClickable(true);

closeBtn.setOnClickListener(newView.OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

dialog.show();

以上就是在Android开发自定义dialog样式的方法和步骤,android很多的控件都提供了接口或者方法进行样式的定义和修改。


网站栏目:android自定义dialog,android自定义dialog布局文件
网站路径:http://cxhlcq.com/article/dsohjdj.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部