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

原创 2015年07月10日 14:10:22

将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" />

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

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

相关文章推荐

Android学习-创建圆角的DialogActivity

转自:http://blog.csdn.net/ljcitworld/article/details/51322021 Android学习-创建圆角的DialogActivity 前言...

自定义圆角风格dialog的Activity

1、在AndroidManifest.xml中注册:

[Android开发实用技巧]实现圆角Activity

做移动产品,用户体验为上。好的UI设计,会让用户眼前一亮,给用户留下深刻的印象,影响到产品的留存度和用户黏性。 在安卓上面,我个觉得圆角的Activity还是很美观的,实现起来也非常简单。 下面我教大...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

android dialog圆角显示及解决出现的黑色棱角

原文地址:http://blog.csdn.net/jj120522/article/details/7871289 最近在开发一个天气预报的app,看到一个比较不错友情提示,如下:   ...

android dialog圆角显示及解决出现的黑色棱角

最近在开发一个天气预报的app,看到一个比较不错友情提示,如下:                   怎么样,看起来比原始的dialog好看吧.好了,做法也许有很多,我介绍下我的做法吧...
  • kite30
  • kite30
  • 2015年06月08日 10:52
  • 326

android dialog圆角显示及解决出现的黑色棱角.(友情提示)

最近在开发一个天气预报的app,看到一个比较不错友情提示,如下:                   怎么样,看起来比原始的dialog好看吧.好了,做法也许有很多,我介绍下我的做法吧,  首先...

Android 硬菜之圆角Dialog显示自定义布局(无棱角)

这几天很纳闷项目中要使用弹窗,但是 之前这个用过,但是没有做详细的笔记, 时间一久就忘了, 今天把这个问题有解决了. 开始使用的是alertdialog来显示自定义布局弹窗,但是有个问题, 就是当我给...

android dialog圆角显示及解决出现的黑色棱角

原文地址:http://blog.csdn.net/jj120522/article/details/7871289 最近在开发一个天气预报的app,看到一个比较不错友情提示,如下:   ...

android圆角矩形出现四个角黑点的解决方法

只要在布局对应的activity的oncreate方法的第一行加上 getWindow().setBackgroundDrawableResource(android.R.color.transpa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 以Dialog的方式显示Activity,并且处理背景四个角为圆角,去掉黑角
举报原因:
原因补充:

(最多只允许输入30个字)