Android Api Demos登顶之路(三)

这个demo展示的是一个对话框样式的activity,它看起来像一个对话框,但它实际上是一个activity 只是给这个activity设置了一个对话框的样式。
android允许自定义theme和style,也可以继承已有的 样式,尔后根据需要进行修改。theme应用于application和activity层次,可以为应用或activity 定制统一风格的样式,尔后再使用style针对每个view控件作进一步的美化和修改。
下面我们就来完成这个demo
1.新建activity_custom_dialog布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:text="Example of how you can use a custom Theme.Dialog theme to make an activity to looks like a customized dialog,here with an ugly frame." />

</LinearLayout>

2.新建CustomDialogActivity类继承activity

public class CustomDialogActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_custom_dialog);
    }
}

3.在drawable目录下新建 filled_box.xml,根节点(root element)选择shape

<?xml version="1.0" encoding="utf-8"?>
<!-- 定义一个矩形,背景颜色为#f0600000,边框宽3dp,颜色为#ffff8080,圆角弧度为3dp,内边距为10
用来作DialogActivity样式的填充背景 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#f0600000"/>
    <stroke android:width="3dp" android:color="#ffff8080"/>
    <corners android:radius="3dp"/>
    <padding android:left="10dp" android:right="10dp"
        android:top="10dp" android:bottom="10dp"/>

</shape>

4.在styles中添加样式,设定该样式继承系统的Theme.Dialog,背景用我们刚才设置
好的图形filled_box填充

<style name="CustomDialogTheme" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@drawable/filled_box</item>
    </style>

5.在配置文件中为CustomDialogActivity引入样式

<activity 
            android:name="com.example.apidemos.app.activity.CustomDialogActivity"
            android:label="@string/activity_custom_dialog"
            android:theme="@style/CustomDialogTheme" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="COM_FISHTOSKY_CODE"/>
            </intent-filter>
        </activity>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值