`
wjx
  • 浏览: 67193 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

构造个全透明的Activity

阅读更多

最近在玩Nexus S,于是就想搞搞android开发试试,因为有些功能就是找不到满意的实现。

 

之前用iPhone,一直懒得去研究Object C,现在是java了,这玩意咱熟啊。没想到也是步步惊心,还好多数陷阱狗哥都能解决,直到遇到这个。

 

先说下需求,我这个小应用的功能是接收其它Activity发送过来的Intent,例如在浏览器里面发送链接与标题(Share Page),这时候会弹出个对话框让你选择你希望用哪个应用来接收数据,我做的这个小玩意就是干这个接收数据的活的。

 

也就是使用的android.intent.action.SEND,这玩意可是Activity Only啊。

 

要求是不弹出任何activity,直接在后台处理。

 

我的思路是创建个隐形的activity,在这里面接收Intent之后做一些处理,然后直接扔到一个新创建service里面处理,然后关闭这个activity,处理完毕该Service自己关闭。

 

问题就出在这个隐形的activity上面了,无论怎么搞屏幕上都会闪一下,虽然很快也让我不爽,为啥Read It Later就可以呢?

 

放狗查了半天也没查到解决办法,大家好像都没有这类需求 反正都是回答:为啥不用service。。。

 

后来没办法,直接上apktool反编译了Read It Later,发现解决办法真tmd简单,就是给activity上个全透明的style,会者不难啊。

 

styles.xml:

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

AndroidManifest.xml:

<activity
			android:name="XXOO"
			android:theme="@style/Theme.Transparent"
			android:noHistory="true"
			android:label="@string/send_activity_name"
			android:excludeFromRecents="true">
			<intent-filter>
				<action
					android:name="android.intent.action.SEND"></action>
				<data
					android:mimeType="text/plain"></data>
				<category
					android:name="android.intent.category.DEFAULT"></category>
			</intent-filter>
		</activity>

 

O了。

 

关键字: android activity 透明 隐藏

分享到:
评论
1 楼 danny.chiu 2014-09-17  
谢谢分享,不知道现在有没有更好的办法,透明系统也自带一个,
android:theme="@android:style/Theme.Translucent"

相关推荐

    Android之用PopupWindow实现弹出菜单.zip

    3. 背景交互:为了防止背景被点击而关闭PopupWindow,可以设置一个全透明的背景,或者在点击外部时判断是否需要关闭。 通过以上步骤,我们可以创建一个自定义的、具有丰富交互的弹出菜单。学习并熟练掌握...

    Android例子源码HerilyAlertDialog完全自定义的Dialog

    2. **构造函数**: 在自定义Dialog类中,通常会有一个构造函数,接收Activity上下文、主题样式等参数。在这里,开发者可以调用`setContentView()`方法,传入刚才创建的布局文件,将其设置为Dialog的内容视图。 3. **...

    新版Android开发教程.rar

    QWERTY 全键盘; 310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO 和 OGG ;支持...

    android 自定义控件 小球圆周运动

    - 在Activity的`onCreate()`方法中,找到并初始化这个自定义控件。 7. **优化** - 为了提高性能,可以考虑开启硬件加速(在`View`构造函数中调用`setLayerType()`),以及使用`BitmapShader`来缓存小球的图像,...

    自定义View

    2. **处理属性**:在自定义View的构造函数中,通常需要提供一个带`AttributeSet`参数的构造器,这样在XML中设置的属性才能被正确解析。例如,`public MyCustomView(Context context, AttributeSet attrs) { super...

    安卓popupwindow相关-Android--PopWindow的使用.rar

    在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种浮现在当前Activity之上的窗口,用于显示临时的信息或者提供交互操作。本资源“安卓popupwindow相关-Android--PopWindow的使用.rar”包含了关于...

Global site tag (gtag.js) - Google Analytics