当前位置: 首页 > 面试题库 >

Android-自定义AlertDialog背景颜色

归俊
2023-03-14
问题内容

因此,我看到我们可以使用具有灰色和白色(当setinverse …时)背景色的Alertdialog。

要了解为什么我检查了sdk的themes.xml,检查了它是否导致了可绘制对象,并且在那里我意识到alertdialog背景不是以编程方式完成的,而是通过一些图像完成的。这些图像保证了当我们使用LayoutInflater设置不同的背景色时,对话框的顶部(标题区域)和底部(按钮区域上方)有两条灰色(反色时为白色)水平线。

所以我的问题是,由于LayoutInflator没用,并且猜测我必须继承alertdialog,您建议我如何生成具有不同背景色的AlertDialog?我应该覆盖什么?


问题答案:

我没有使用AlertDialog,而是使用了Dialog。获得自定义外观:

1-创建对话框并删除标题区域(否则您将在顶部看到空白的灰色区域):

myDialog = new Dialog(this);
myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

2-在xml中设计一个布局,并将其设置为对话框的内容:

myDialog.setContentView(R.layout.mydialog_layout);

3-如果布局不是圆角的rect,则它将与对话框的圆角相交。因此,将布局设计为圆角矩形:

在mydialog_layout.xml中:

android:background = "@layout/mydialog_shape"

mydialog_shape.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle" 
     > 
     <gradient android:startColor="#FF0E2E57" 
     android:endColor="#FF0E2E57" 
            android:angle="225" android:paddingLeft="20dip"/>

    <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" 
     android:topLeftRadius="5dp" android:topRightRadius="5dp" android:paddingLeft="20dip"/> 
</shape>

4-将侦听器添加到活动中的按钮:

Button button = (Button)myDialog.findViewById(R.id.dialogcancelbutton);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    myDialog.cancel();
}});

就是这样



 类似资料:
  • 问题内容: 我有这个课: 问题是当我在JList中选择一个单元格时,我的背景不会变成红色。setText部分有效,但是我无法弄清楚为什么它不会更改单元格的背景颜色。任何人都有任何想法,谢谢! 问题答案: 主要问题是标签默认情况下是不透明的,因此您需要使标签不透明才能绘制背景。 但是您不需要为此创建自定义渲染器。默认渲染器是不透明的。您所需要做的就是设置列表的选择背景属性: 如果您尝试创建一个渲染器

  • 我想通过主题改变整个应用程序的背景色。这是我的努力,但没有成功: res/值/样式。xml 显示xml 我已经在Android4.4和5.0上试过了。我做错了什么?有什么建议吗?

  • 我有一个自定义列表视图的应用程序,它有一个textview和一个imageview。当我点击图像视图时,背景颜色应该改变。我试图这样做,但是得到了。。。这是我的密码 CustomListViewAdapter。JAVA 任何建议都将不胜感激。谢谢

  • 我有一个具有自定义列表视图的应用程序,它具有文本视图和图像(删除),当我单击图像时,该行的背景颜色应更改,当我再次单击相同的图像时,其背景应更改为默认颜色。我可以改变背景颜色,但只有一次,我不能改变它两次,我的意思是我不能恢复到它的默认颜色。 这是我的密码。。。 CustomListView.java 还有一个问题是,背景色不是我在《颜色》中提到的颜色。xml,我通过放置不同的颜色进行了测试,但是

  • 我已经看过android文档和其他示例,但仍然无法让我的动作栏风格发挥作用。我已经在android清单中将我的主题设置为“AppTheme”,但背景颜色不会改变。 这是我的风格。xml: 我发现我需要定义两次样式,一次使用项目名“android:background”,另一次使用项目名“background”。后者是为了支持库兼容性。我在运行应用程序时遇到此错误: 为什么android不允许项目名

  • 这是我的seekbar: 这是我的拇指。xml: 这是我的定制搜索栏。xml: 这是我的搜索棒。巴布亚新几内亚(背景): 酒吧里没有阴影,也没有圆边。。。 我真的不明白我该怎么做。