Android自定义Custom Dialog对话框

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:22 我要评论(0)

现在要来实现一个自定义的Dialog,主要涉及到样式文件style。参考案例,自己写代码来实现。首先创建一个Android ProjectCustomDialog,然后res/drawable文件夹下创建一个xml文件filled_box.xml,其内容为:

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

<shape xmlns:android= http://schemas.android.com/apk/res/android >

<solid android:color= #ffff0000 />

<stroke android:width= 3dpcolor= #00ffff80 />

<corners android:radius= 2dp/>

<padding android:left= 10dpandroid:top= 10dp

android:right= 10dpandroid:bottom= 10dp/>

</shape>

这个文件主要是画了一个圆角矩形(shape的android:shape属性的默认值为rectangle,故这里没有设置为矩形,默认是矩形。),设 置了其填充颜色为#ffff0000,就是solid这项了;圆角大小是2dp,就是corners这项了;padding项主要控制各边得对齐信 息,stroke项主要是边框效果。欲了解shape的详细信息,请参与文档里Dev Guide >Framework Topics >Application Resources >Resource Types >Drawable页面的相关内容。

下一步就是在res/values目录下创建styles.xml样式文件,内容如下:

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

<resources>

<style name= Theme.CustomDialogparent= android:style/Theme.Dialog >

<item name= android:windowBackground >@drawable/filled_box</item>

</style>

</resources>

Theme.CustomDialog是自己定义的主题名字,parent属性指定主题的父级主题为 android:style/Theme.Dialog,这个主题在 Dialog提示窗口 的案例中已经使用过,然后通过name为 android:windowBackground的item指定了窗口背景为之前通过filled_box定义的shape。

现在有了主题样式定义,只需要为Activity添加使用的主题项就可以了,跟前一个案例 Dialog提示窗口 的处理方式一样,打开 AndroidManifest.xml文件,在Activity定义处加上属性 android:theme= @style/Theme.CustomDialog ,指定主题为自定义的主题。现在就可以运行一下项目,看看自定义的 效果。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...