Android下Notification,样式style,主题theme的功能实现

时间:2023-03-10 02:36:05
Android下Notification,样式style,主题theme的功能实现

一:Notification

1.NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

2. notification.setLatestEventInfo(this, "*给你发短信!", "你被通辑啦~~~", contentIntent);

2.1: PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);

2.1.1: Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:110"));

3.nm.notify(0,notification);

3.1:Notification notification = new

Notification(R.drawable.ic_launcher,"有新的消息到来了",System.currentTimeMillis());

4.为避免成为流氓软件,要: notification.flags = Notification.FLAG_AUTO_CANCEL;

详细代码:

  1. public class MainActivity extends Activity {
  2. private NotificationManager nm;
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_main);
  6. nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  7. }
  8. // 通知是显示在一个系统应用里面的, 如果系统应用ui挂了,通知就不会出来了。
  9. public void click(View view) {
  10. @SuppressWarnings("deprecation")
  11. Notification notification = new
  12. Notification(R.drawable.ic_launcher,"有新的消息到来了",System.currentTimeMillis());
  13. notification.flags = Notification.FLAG_AUTO_CANCEL;
  14. //       //延期的意图,不是立刻执行的意图,最终这个意图是在另外一个应用程序里面执行
  15. Intent intent = new Intent();
  16. intent.setAction(Intent.ACTION_CALL);
  17. intent.setData(Uri.parse("tel:110"));
  18. PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
  19. //旧的api,一定要记得设置notification这一个参数
  20. notification.setLatestEventInfo(this, "*给你发短信!", "你被通辑啦~~~", contentIntent);
  21. nm.notify(0,notification);
  22. }
  23.   }

运行结果:

Android下Notification,样式style,主题theme的功能实现

二:样式:style(只能作用在控件上)

1.在res/values/styles.xml设置样式

<style name="text_content_style">

<!-- item里面是键值对! -->

<item name="android:layout_width">wrap_content</item>

<item name="android:layout_height">wrap_content</item>

<item name="android:textColor">#FF0000</item>

<item name="android:textSize">20sp</item>

</style>

继承形式一

<style name="text_title_style" parent="@style/text_content_style">

<item name="android:textSize">30sp</item>

</style>

继承形式二

<style name="text_subtitle_style" parent="@style/text_content_style">

<item name="android:textSize">25sp</item>

</style>

2.使用样式:

<TextView

style="@style/text_title_style"

android:text="我是标题"/>

<TextView

style="@style/text_subtitle_style"

android:text="我是sub标题"/>

<TextView

style="@style/text_content_style"

android:text="我是文本"/>

3.效果图:

Android下Notification,样式style,主题theme的功能实现

三:主题theme(作用在Activity或整个应用程序上Application)

1.在style.xml中配置:

参考:~\adt-bundle-windows-x86-20130729\sdk\platforms\android-16\data\res\values\themes.xml

第162行:Window attributes,可配置自己的Window attribute的主题。

注意:不同于系统的,自己要定义需要在name的字符串前加上:android:   如:

系统:

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

自己:

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

<style name="red_theme">

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

</style>

2.在AndroidMainfest.xml中使用:

<activity

android:theme="@style/red_theme"

...

效果图:

Android下Notification,样式style,主题theme的功能实现