当前位置:首页 » 安卓系统 » android通知栏布局

android通知栏布局

发布时间: 2022-11-16 01:53:34

⑴ android 5.0 横屏状态下下拉通知栏

布局文件所在/frameworks/base/packages/SystemUI/res/layout
status_bar_expanded_header.xml为下拉菜单中头部的布局文件,包括时间、日期、设置等。

status_bar_expanded.xml 为下拉菜单整体布局

com.Android.systemui.statusbar StatusBarIconView修改下拉菜单中icon布局

public StatusBarIconView(Context context, String slot, Notification notification) {
super(context);
final Resources res = context.getResources();
mSlot = slot;
mNumberPain = new Paint();
mNumberPain.setTextAlign(Paint.Align.CENTER);
mNumberPain.setColor(res.getColor(R.drawable.notification_number_text_color));
mNumberPain.setAntiAlias(true);
mNotification = notification;
setContentDescription(notification);

// We do not resize and scale system icons (on the right), only notification icons (on the
// left).
if (notification != null) {
final int outerBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);
final int imageBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size);
final float scale = (float)imageBounds / (float)outerBounds;
setScaleX(scale);
setScaleY(scale);
final float alpha = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
setAlpha(alpha);
}

setScaleType(ImageView.ScaleType.CENTER_INSIDE);
}

⑵ 【Android】Notification通知栏使用RemoteViews自定义布局,怎么自定义点击事件

首先你的自定义布局的Notification是不是有一个RemoteView,那你就可以通过这个RemoteView来设置点击事件:
mRemoteViews.setOnClickPendingIntent(R.id.xxx, mPendingIntent);
其中你的R.id.xxx 就是你那个被点击的控件的id
mPendingIntent是一个PendingIntent,它可以这样定义:
mPendingIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
注意到里面需要一个参数intent:
Intent intent = new Intent(xxx ,AaaActivity);

这样当点击时,就可以跳转到AaaActivity

⑶ android 通知栏显示哪个应用弹出的

是一些浏览器软件推出来的广告,
解决办法
1、鼠标在任务栏空白处弹出右键菜单。
2、选中菜单中的“属性”选项,鼠标左键点击,弹出“任务栏和“开始”菜单属性”窗口。
3、点击“任务栏”页面“通知区域”栏目的“自定义”按钮,弹出“通知区域图标”窗口。
4、点击下方红框处的“始终在任务栏上显示图标和通知”以去掉前方的勾选,然后把上方所有应用程序后边的选项设为“隐藏图标和通知”。
5、再点击下方的“打开或关闭系统图标”按钮,弹出“”窗口。
6、把所有系统图标的对应的行为选项设置为“关闭”,然后点击“确定”按钮回到“通知区域图标”窗口。
7、在“通知区域图标”窗口点击“确定”按钮完成设置,并关闭窗口。此时,任务栏的系统消息通知区域。至此,取消电脑右下角的系统消息通知完成。

⑷ android 修改通知栏位置

修改方法:
1、ROOT机器
2、使用ROOT管理器找到root/system/framework/framework-res.apk文件,复制至储存卡,再复制到电脑上,做好备份
3、用WINRAR打开,进入\res\drawable-mdpi目录,替换通知栏背景文件以及电池图标文件。(直接拖入WINRAR,不要解压
通知栏背景文件:statusbar_background.9,电池图标文件:stat_sys_battery_10等
4、将修改后的framework-res.apk文件从SD卡先复制到root/system目录,修改权限全部打钩
5、再从root/system移动到root/system/framework/下
6、重启手机
可 第3、用WINRAR打开,进入\res\drawable-mdpi目录,替换通知栏背景文件以及电池图标文件。(直接拖入WINRAR,不要解压)

⑸ 如何让安卓的通知栏像iPhone一样

1、首先,看一下现有的通知栏信息:

2、然后进入“设置”-“通知栏设置”这里可以对通知栏进行基本的设置:

3、选择页面样式为单页会出现:

4、然后可以自定义开关位置(这个可以根据自己的使用习惯把经常用的放到前面):

5、然后设置通知栏的主题风格,进入“主题风格”-“混搭”-“通知栏”这样就可以设置通知栏的主题风格了:

6、如果对现有的主题风格不满意可以进入在线选择主题风格,但是这需要流量的,可以根据自己的流量量力而行。

⑹ android怎么在应用中获取通知栏的布局

如果找不到api提供的方法,布局都是自己设进去的,试试在设进去的时候把这个对像的引用留出来,这样是否可以使用

⑺ android开发怎么显示系统顶部通知栏

1、首先,获取系统的通知服务
2、发送一个最简单的通知
3、删除一个通知。参数即为通知的id
4、发送一个通知,点击通知后跳转到一个Activity,从这个Activity返回后,进入程序内的某一个页面(一般为主页)
5、和上述4类似,只是在打开的Activity中返回时回到home页
6、带进度条的通知
7、扩展布局的通知。按住通知条下滑,可以查看更详细的内容
8、自定义布局的通知栏。(根据谷歌的官方文档不推荐这么做,因为使用这种方式时,对不同屏幕进行适配需要考虑的因素太多。而且,通知栏应该展示的就是最简明扼要的信息,对于大多数程序默认的布局已经足够了。)

⑻ android 设置整个app的通知栏Notification 的声音和震动用什么方法

设置安卓手机通知栏提示音的方法如下。

1、以OPPO手机为例,点击打开手机设置,如图。

⑼ android怎么在应用中获取通知栏的布局

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。
下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展开的通知列表。它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等。
(网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头,随便当作回顾笔记。下面我就通过官方文档、源代码、书上的一些资料汇总下这一块的知识,并通过一个通知栏的汇总DEMO让大家更好的了解这个类的使用,内容有点多,可以根据需求看目录学习)。

Notificaiton状态通知栏:

功能作用

1.显示接收到短消息、即使消息等信息 (如QQ、微信、新浪、短信)
2.显示客户端的推送消息(如有新版本发布,广告,推荐新闻等)
3.显示正在进行的事物(例如:后台运行的程序)(如音乐播放器、版本更新时候的下载进度等)

思维导图结构

思维导图的大体结构(按照各个节点延伸拓展学习)
Notificaiton -- service -- BroadcastReceiver -- Intent(flag、Action等属性应用) -- PendingIntent

感慨:
一个Notificaiton通知的拓展使用就要涉及与4大组建的配合,所以学好整体的知识体系。

联系:
1.由于service 是在后台运行,所以它意图做什么我们看不到,可以通过Notificaiton 来显示提醒(如音乐的后台播放)。
2.service服务和BroadcastReceiver广播相结合,在加上Notificaiton 显示(如程序的后台更新)。
3.Intent作为意图处理,和Notificaiton的点击时间紧密结合在了一起,并且与BroadcastReceiver和service的联系也紧密不可以分割。
(service 在后台之后通过BroadcastReceiver来通知Notificaiton 显示相关东西,在通过Intent完成用户的意图操作)

⑽ 如何实现Android沉浸式状态栏

沉浸式通知栏Android4.4以上才支持的新特性。4.3不支持。
具体实现方式如下:
1.新建个公共style,设置android:fitsSystemWindows=true
<!-- 设置应用布局时是否考虑系统窗口布局;true --> <style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar"> <item name="android:fitsSystemWindows">true</item> </style>
2. 修改AndroidManifest.xml,让所有的activity样式默认设置为AppBaseTheme(*不同项目要灵活处理,笔者项目的activity样式都是统一的所以这样设置没问题,但是实际情况下不同的activity可能调用的样式不一样,需要读者自行按自己的项目来设置)
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppBaseTheme" android:name="****">
3.新增沉浸式通知栏实现类,实现原理很简单。
1)判断当前系统版本是不是4.4以上,判断代码如下:
if (VERSION.SDK_INT >= VERSION_CODES.KITKAT)
2)如果大于4.4则设置状态栏透明化,代码如下:
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
3)获取activity的根rootView(DecorView),然后创建一个新的view stateBarView并把它添加到rootView(这里手动给它设置个ID,下次进来时先判断rootView是否已创建stateBarView,如果已创建则直接获取该View这样可以防止重复创建,导致内存泄露)
以下是具体代码实现:
import android.annotation.SuppressLint;import android.app.Activity;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Build;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.FrameLayout.LayoutParams;/** * 沉浸式通知栏公共类 * @author hurrican * */@SuppressLint({ "InlinedApi", "ResourceAsColor" })public class ImmersedNotificationBar { private Activity activity ; //设置沉浸式通知栏的ID(防止重复创建) private final static int IMMERSED_NOTIFICATION_BAR_ID = 12345678 ; private final static String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height" ; public ImmersedNotificationBar(Activity activity){ this.activity = activity ; } //获取状态栏高度 private int getStatusBarHeight(Resources res){ int statusBarHeight = 0; int resourceId = res.getIdentifier(STATUS_BAR_HEIGHT_RES_NAME, "dimen", "android"); if (resourceId > 0) { statusBarHeight = res.getDimensionPixelSize(resourceId); } return statusBarHeight ; } //添加顶部状态栏 private View addStateBar(Activity activity,ViewGroup rootView,int statusBarHeight){ //创建新的View,并添加到rootView顶部) View statusBarView ; if(null!=rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID)){ statusBarView = rootView.findViewById(IMMERSED_NOTIFICATION_BAR_ID); }else{ statusBarView = new View(activity); rootView.addView(statusBarView); } statusBarView.setId(IMMERSED_NOTIFICATION_BAR_ID) ; LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,statusBarHeight); params.gravity = Gravity.TOP; statusBarView.setLayoutParams(params); statusBarView.setVisibility(View.VISIBLE); return statusBarView ; } /** * 设置状态栏颜色 * @param ColorId */ public void setStateBarColor(int ColorId){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activity的顶级布局 ViewGroup rootView = (ViewGroup) window.getDecorView(); //透明化状态栏 window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //获取状态栏目的高度 int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundColor(ColorId) ; } } /** * 设置状态栏颜色 * @param ColorId */ public void setStateBarDrawable(Drawable drawable){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); //activity的顶级布局 ViewGroup rootView = (ViewGroup) window.getDecorView(); //透明化状态栏 window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); Resources res = activity.getResources(); //获取状态栏目的高度 int statusBarHeight = getStatusBarHeight(res); View stateBarView = addStateBar(activity,rootView,statusBarHeight) ; stateBarView.setBackgroundDrawable(drawable) ; } }}

热点内容
MPLAB能否编译pic32 发布:2025-03-04 12:42:50 浏览:286
如何分辨一辆车是什么配置 发布:2025-03-04 12:41:10 浏览:346
配置很低的电脑玩csgo怎么调 发布:2025-03-04 12:40:29 浏览:22
视频解析网站源码 发布:2025-03-04 12:40:25 浏览:315
哪个软件可以直接重启安卓手机 发布:2025-03-04 12:22:42 浏览:608
c语言scanf的意思 发布:2025-03-04 12:08:31 浏览:467
两端存储器 发布:2025-03-04 12:07:49 浏览:85
安卓手机连不上无线网什么原因 发布:2025-03-04 12:03:29 浏览:90
串口缓存区 发布:2025-03-04 11:59:12 浏览:579
php抓取链接 发布:2025-03-04 11:59:11 浏览:986