Ta muốn một activity chạy trên màn hình chính mà có
nền trong suốt, có thể ấn được vào các icon của ứng dụng phía sau để chạy.
Copy đoạn sau vào trong thẻ values, file styles.xml.
<style name="Theme.Transparent"
parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<itemname="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowCloseOnTouchOutside">false</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
Thêm vào khai báo class.
android:theme="@style/Theme.Transparent"
Bây giờ trong class, copy vào dưới
setContentView();
WindowManager.LayoutParams
wlp =
getWindow().getAttributes();
wlp.dimAmount = 0;
wlp.flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
|WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
getWindow().setAttributes(wlp);
Activity bây giờ sẽ nổi ở giữa màn hình, muốn căn
chỉnh nó lên trên đầu chẳng hạn, ta thêm đoạn sau vào trên setContentView();
WindowManager.LayoutParams
wmlp =
getWindow().getAttributes();
wmlp.width = LayoutParams.WRAP_CONTENT;
wmlp.gravity = Gravity.TOP | Gravity.CENTER;
Trên một số điện thoại như của Samsung, màn hình phía sau vẫn bị khoá, không chạm để mở ứng dụng khác được. Nên ta có thể dùng service để làm, nó luôn nổi và không ảnh hưởng tới màn hình phía sau.
Trên một số điện thoại như của Samsung, màn hình phía sau vẫn bị khoá, không chạm để mở ứng dụng khác được. Nên ta có thể dùng service để làm, nó luôn nổi và không ảnh hưởng tới màn hình phía sau.