关闭

Android 以Dialog的方式显示Activity,并且处理背景四个角为圆角,去掉黑角

标签: Dialog去掉黑角AndroidActivity以Dialog显示
2324人阅读 评论(0) 收藏 举报
分类:

将Activity以Dialog的方式显示出来,并不难,只需要在AndroidManifest.xml文件中配置一下就可以了。

把背景设置成圆角也不是很难,可以自己处理,亦可以直接是背景图。。。

在我看来,最难得是去掉黑角。黑角是怎么来的咧?

Activity默认的背景是黑色的,不透明的,当你把背景设置成别的颜色,并且设置成圆角后,Activity本身所占有的空间,是包含了圆角的一个正方形,或者长方形,显示出来的圆角,在我看来,就是把最上面显示的为圆角,最下面的为黑色的正方形,当设置圆角,多出来的部分显示为黑色,就出现了所谓的黑角。。。

在网上找了很多的方法,也忘记了哪种方式成功的设置成了圆角,并且隐藏掉了黑角,现在就根据我自己的看法,来总结一下吧。。。

1.首先是布局文件。这里,千万不要给最外面的父容器添加背景,如果添加了,那么黑角怎么都隐藏不掉了。也许你的黑角也隐藏不掉,看看这里吧,可以试试。。。

这个博客,主要记录的就是这里,不要给最外面的父容器添加背景。。。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:layout_width="281.33dip"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" >

        <TextView
            android:id="@+id/member_details_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/member_details_top_bg"
            android:gravity="center_vertical"
            android:padding="13dip"
            android:text="患者健康档案"
            android:textColor="@android:color/white"
            android:textSize="17sp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/member_details_title"
            android:background="@drawable/member_details_bottom_bg"
            android:orientation="vertical"
            android:paddingBottom="20dip"
            android:paddingLeft="13dip"
            android:paddingRight="13dip"
            android:paddingTop="14dip" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="条目"
                android:textColor="#FF48ce55"
                android:textSize="17sp" />

            <LinearLayout
                android:id="@+id/member_details_entry"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:padding="6dip" >
            </LinearLayout>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="14dip"
                android:text="说明"
                android:textColor="#FF48ce55"
                android:textSize="17sp" />

            <TextView
                android:id="@+id/member_details_explain"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dip"
                android:layout_marginTop="6dip"
                android:text="患者授权"
                android:textColor="#FF6a6c6f"
                android:textSize="14sp" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="14dip"
                android:text="备注"
                android:textColor="#FF48ce55"
                android:textSize="17sp" />

            <TextView
                android:id="@+id/member_details_remark"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dip"
                android:layout_marginTop="6dip"
                android:text="患者授权"
                android:textColor="#FF6a6c6f"
                android:textSize="14sp" />
        </LinearLayout>
    </RelativeLayout>

</RelativeLayout>


2.样式,基本上,百度上面搜索到的样式,都是这样的,没有什么不同,也就是多几个少几个,都感觉无所谓,不要在上面花费太多的功夫了。。。

<style name="QrcodeTheme" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">@null</item>
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>


3.AndroidManifest.xml文件中的布置

<activity
            android:name=".consult.activity.Activity"
            android:screenOrientation="portrait"
            android:theme="@style/QrcodeTheme"
            android:windowSoftInputMode="stateHidden|adjustResize" />
其他的,个人觉得就没什么需要注意的地方了。。。。
-----------------------------------------------------------------------

下面是另外一个项目中,去掉黑角的实现方法,跟上面有一点不同,贴出来,做个对比吧。。。

1.样式

<style name="MySearchTheme" parent="@android:Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

2.布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="1700dp"
    android:layout_height="740dp"
    android:background="@android:color/transparent" >

    <RelativeLayout
        android:id="@+id/oper_scre_cond"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/oper_pop_top_bg"
        android:paddingTop="20dp" >

        <Spinner
            android:id="@+id/oper_Hospital"
            android:layout_width="124dp"
            android:layout_height="38dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp" />

        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@id/oper_Hospital"
            android:text="@string/oper_name"
            android:textSize="30sp" />

        <EditText
            android:id="@+id/oper_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/name"
            android:background="@drawable/oper_name" />

        <TextView
            android:id="@+id/medical_record"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@id/oper_name"
            android:text="@string/medical_record"
            android:textSize="30sp" />

        <EditText
            android:id="@+id/oper_medical_record"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/medical_record"
            android:background="@drawable/oper_medical_record" />

        <Spinner
            android:id="@+id/oper_Modified_type"
            style="@android:attr/spinnerStyle"
            android:layout_width="164dp"
            android:layout_height="38dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@id/oper_medical_record" />

        <TextView
            android:id="@+id/time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@id/oper_Modified_type"
            android:text="@string/oper_time"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/oper_time_start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/time"
            android:background="@drawable/oper_name"
            android:gravity="center_vertical|center_horizontal" />

        <TextView
            android:id="@+id/Horizontal_bar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/oper_time_start"
            android:text="@string/horizontal_bar"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/oper_time_end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/Horizontal_bar"
            android:background="@drawable/oper_name"
            android:gravity="center_vertical|center_horizontal" />

        <ImageButton
            android:id="@+id/oper_query"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@id/oper_time_end"
            android:background="@drawable/oper_query" />
    </RelativeLayout>

    <ImageButton
        android:id="@+id/oper_return"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_margin="10dp"
        android:background="@drawable/oper_close" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/oper_scre_cond"
        android:background="@drawable/oper_pop_bottom_bg"
        android:paddingTop="30dp" >

        <LinearLayout
            android:id="@+id/data_format_linear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="238dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="30dp"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/oper_name"
                android:textSize="30sp" />

            <TextView
                android:layout_width="238dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/medical_record"
                android:textSize="30sp" />

            <TextView
                android:layout_width="180dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/hospital_state"
                android:textSize="30sp" />

            <TextView
                android:layout_width="180dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/oper_style"
                android:textSize="30sp" />

            <TextView
                android:layout_width="298dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/modify_content"
                android:textSize="30sp" />

            <TextView
                android:layout_width="238dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/operator"
                android:textSize="30sp" />

            <TextView
                android:layout_width="298dp"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="@string/operator_time"
                android:textSize="30sp" />
        </LinearLayout>

        <View
            android:id="@+id/oper_view_1"
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_below="@id/data_format_linear"
            android:layout_marginTop="5dp"
            android:background="@drawable/oper_first_dividing" />

        <TextView
            android:id="@+id/oper_Remind"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/oper_view_1"
            android:layout_centerHorizontal="true"
            android:text="没有数据"
            android:textSize="50sp"
            android:visibility="gone" />

        <ListView
            android:id="@+id/oper_lv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/oper_view_1"
            android:layout_marginTop="5dp"
            android:divider="@drawable/oper_dividing" />
    </RelativeLayout>

</RelativeLayout>

3.AndroidManifest.xml文件中的配置

<activity
            android:name="com.sinldo.yicard.OperationQueryActivity"
            android:screenOrientation="landscape"
            android:theme="@style/MySearchTheme"
            android:windowSoftInputMode="stateUnchanged|adjustPan" />

好了,这里总共有两套实现方式,供参考吧。。。

这两套方式,在两个项目里面都实现了去掉黑角,以及圆角背景,可以选择的来。。。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:74824次
    • 积分:1755
    • 等级:
    • 排名:千里之外
    • 原创:102篇
    • 转载:7篇
    • 译文:2篇
    • 评论:9条
    最新评论