日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android tv 实现弹出通知

發(fā)布時間:2024/3/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android tv 实现弹出通知 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

谷歌官方文檔已經(jīng)說了,Android TV要給用戶展現(xiàn)的是沉浸式的體驗,不希望過多被干擾,所以,普通的Notification是無效的。
思路:一個透明的Activity+自定義Dialog實現(xiàn)類似彈出通知的效果。
先上效果圖:

styles.xml

<resources><!--透明主題--><style name="translucent" parent="Theme.AppCompat.Light.NoActionBar"><item name="android:windowBackground">@android:color/transparent</item><item name="android:windowIsTranslucent">true</item><item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><item name="android:windowNoTitle">true</item><item name="android:windowActionBar">false</item></style> </resources>

MainActivity.java:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);startService(new Intent(this, NotificationService.class));} }

NotificationService.java

public class NotificationService extends Service {@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// 模擬15秒之后通知到來new Handler().postDelayed(new Runnable() {@Overridepublic void run() {startActivity();}}, 15000);return super.onStartCommand(intent, flags, startId);}/*** 彈出通知*/private void startActivity() {Intent intent = new Intent(this, NotificationActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);} }

NotificationActivity.java

public class NotificationActivity extends Activity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_notification);showNotification();new Handler().postDelayed(new Runnable() {@Overridepublic void run() {if (!NotificationActivity.this.isDestroyed()) {// 延遲10秒關閉彈窗NotificationActivity.this.finish();}}}, 10000);}private void showNotification() {AlertDialog dialog = new AlertDialog.Builder(this).create();Window dialogWindow = dialog.getWindow();if (dialogWindow != null) {dialogWindow.setBackgroundDrawable(new ColorDrawable());}dialog.show();dialog.setContentView(R.layout.layout_dialog);// 設置window typedialog.setCanceledOnTouchOutside(true);if (dialogWindow != null) {WindowManager.LayoutParams lp = dialogWindow.getAttributes();dialogWindow.setGravity(Gravity.CENTER | Gravity.TOP);DisplayMetrics displayMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);lp.width = (int) (displayMetrics.widthPixels * 0.8); // 寬度lp.height = (displayMetrics.heightPixels / 3); // 高度//lp.x = (int) (100 * 0.15); // 新位置X坐標lp.y = (int) (displayMetrics.heightPixels * 0.05); // 新位置Y坐標//lp.alpha = 0.7f; // 透明度dialogWindow.setAttributes(lp);}} }

shape_dialog.xml

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><corners android:radius="3dp"/><solid android:color="#33688698"/> </shape>

activity_notification.xml:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"/>

layout_dialog.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"android:gravity="center_vertical"android:padding="10dp"android:background="@drawable/shape_dialog"><ImageViewandroid:layout_width="@android:dimen/notification_large_icon_width"android:layout_height="@android:dimen/notification_large_icon_height"android:src="@mipmap/ic_launcher"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:textColor="@android:color/white"android:text="我是通知的詳細內(nèi)容我是通知的詳細內(nèi)容我是通知的詳細內(nèi)容我是通知的詳細內(nèi)容我是通知的詳細內(nèi)容"/> </LinearLayout>

清單文件:

<activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".NotificationActivity"android:theme="@style/translucent"/><service android:name=".NotificationService"/>

總結(jié)

以上是生活随笔為你收集整理的android tv 实现弹出通知的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频999 | 日韩精品tv | 亚洲一区欧美日韩 | 亚洲欧美自拍视频 | 天天操精品 | 久久久久久久久久久99 | 国产女女调教女同 | 精品国产无码AV | 亚洲一在线| 香蕉视频网址 | 国产九九在线 | 天堂网在线视频 | 国产精品美女主播 | 国内精品999 | 日韩精品视频在线观看免费 | 河北彩花中文字幕 | free黑人多人性派对hd | 四虎综合| 天天插天天摸 | 狠狠爱综合网 | 乱中年女人伦 | 国产精品日韩一区二区 | 韩国女主播一区二区 | 成长快手短视频在线观看 | 免费69视频 | 欧美婷婷精品激情 | 黄色一级片视频 | 国产精品99精品久久免费 | 不卡av一区 | 欧美人与性禽动交精品 | 亚洲激情另类 | 欧美成人一区在线观看 | 男生草女生的视频 | 顶级尤物极品女神福利视频 | 福利在线播放 | 欧美,日韩,国产在线 | 影音先锋人妻啪啪av资源网站 | 中文字幕国产在线 | 免费国产精品视频 | 国产成人在线视频观看 | 艳母免费在线观看 | 国产av国片偷人妻麻豆 | 韩日av一区二区 | 麻豆av一区二区三区久久 | 欧美一区二区久久久 | 狠狠操精品 | 黄色国产一级 | 伊人天天操 | 狠狠干狠狠操 | 国产在线xxxx | 宝贝乖h调教灌尿穿环 | 欧美手机看片 | 91精品人妻互换一区二区 | 一级黄色片在线播放 | 日本综合久久 | 九九日韩| 欧美精品自拍 | 欧美人与性动交α欧美片 | 欧美一区二区成人 | 男人操女人免费网站 | 国内精品久久久 | 日韩亚洲欧美一区二区三区 | 久久99精品久久久久久三级 | 日本丰满熟妇hd | www操操操 | 性欧美4khd高清极品 | 夜色视频网站 | 麻豆app在线观看 | 中文字幕日韩精品亚洲一区小树林 | 黄色1级毛片 | 婷婷综合在线 | 熟妇毛片 | 一级做a爱片久久毛片 | xxxx日本少妇 | 99热国产在线 | 国产三级视频网站 | 一区二区日韩国产 | 免费黄色av| 一级bbbbbbbbb毛片| 亚洲午夜视频在线 | 欧美特黄一区二区三区 | 亚洲福利视频网 | 欧美大浪妇猛交饥渴大叫 | 日韩欧美无| 美女视频在线观看免费 | 成人羞羞国产免费游戏 | 淫品色影院 | 欧美三级一区二区 | 日本老年老熟无码 | 午夜激情免费 | 日韩专区一区 | 日韩亚州 | 欧美7777 | 免费在线观看的黄色网址 | 无码少妇一区二区三区芒果 | 妹子干综合 | 半推半就一ⅹ99av | 欧美一区二区三区免费看 | 国产精品人人人人 |