透明的或者弹窗形式的Activity

Activity的背景设置成透明的或者是半透明的,这样可以看到Activity之下的界面显示的是什么但是不能点击。

实现全透明:

首先styles.xml中添加全透明的style

 

<style name="myTransparent" parent="@android:style/Theme.Translucent.NoTitleBar">

      <item name="android:windowBackground">@color/transparent</item>

      <item name="android:windowAnimationStyle">@null</item>

      <item name="android:windowIsTranslucent">true</item>

      <item name="android:windowNoTitle">true</item>

<!-- 无标题 -->

     <item name="android:windowContentOverlay">@null</item>

</style>

 

其中,@color/transparent中的transparent是在color.xml中添加

      <color name="transparent">#00000000</color>

然后AndroidManifest.xml中对需要设置成透明的ActivityTheme进行添加即可:

<activity

      android:name=".MainActivity"

      android:theme="@style/myTransparent">

</activity>

这样,MainActivity就变成完全透明的了。

实现半透明:

如果想实现半透明,只需要在全透明的style中添加

      <item name="android:backgroundDimEnabled">true</item>  <!-- 半透明 -->

其余操作一样,就能实现半透明的效果。

注意:如果想要修改ActivityTheme,会出现 “You need to use a Theme.AppCompat theme (or descendant) with the design library”的错误,这个错误的原因是如果你的Activity继承的是AppCompatActivity

或者是ActionbarActivity的话,就需要用到Theme.AppCompatTheme,而不能用自定义的Theme,解决的方法就是让你的Activity直接继承Activity即可。比如,public class MainActivity extends Activity
(注意,有可能刚创建工程的时候就是继承的AppCompatActivity,在修改继承之后也需要注意xml文件是否需要修改,AppCompatActivityxml文件中有控件CoordinatorLayout而继承ActivityActivity识别不了这个控件,如果不改,同样也会出现上面的那个bug。)



Activity设置成弹窗的形式。

首先styles.xml中添加弹窗格式的style

 

<style name="Theme.FloatActivity" parent="android:style/Theme.Dialog">

    <item name="android:windowBackground">@drawable/background</item>

</style>

 

其中,background为(在drawable文件夹下):

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

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

      <solid android:color="#ffffff" /><!--Activity的填充颜色-->

      <corners android:radius="10dp" /><!--圆角弧度-->

      <padding android:left="5dp" android:top="5dp"

       android:right="5dp" android:bottom="5dp" />

</shape>

然后AndroidManifest.xml中对需要设置成弹窗的ActivityTheme进行添加即可:

<activity

      android:name=".TranslucentActivity"     android:theme="@style/Theme.FloatActivity">

</activity>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值