Flyme系统API

来自Flyme开放平台
跳转至: 导航搜索

SDK点击下载

flyme-api.jar是Meizu给第三方应用开发者提供的适配Flyme兼容包,第三方应用开发者可以通过使用flyme-api.jar中提供给的接口和方案来开发应用,达到既兼容android原生系统,又能够完美适配Flyme。

flyme-api.jar中主要包含以下内容:

沉浸式状态栏
白色系统输入法
锁屏壁纸
Notification通知栏

具体用法请参考FlymeApiDemo。
注意:对于flyme-api.jar中提供的接口的有效性,Meizu保留修改或删除接口功能实现的权利,但flyme-api.jar中的接口都会提供返回值判断调用是否成功,应用需根据返回值做兼容性处理。

一、沉浸式状态栏

实现Flyme4.0沉浸模式状态栏,主要包括两方面:
1、将状态栏置为透明,使应用窗口全屏,状态栏覆盖在应用窗口之上,实现状态栏透明有两种方式:
方式一:在代码中设置,可以直接通过调用StatusBarProxy.setImmersedWindow(Window window, boolean immersed);如果是AndroidSDK 19以上,也可以直接通过设置窗口flag(FLAG_TRANSLUCENT_STATUS)实现状态栏透明效果。使用方法比较简单,在Activity#onCreate(Bundle savedInstanceState)方法中调用即可,请参考FlymeApiDemo。
使用这种方式的优点是每一个窗口可以根据需求灵活设置,缺点是应用无法设置通过这种方式设置StartingWindow的状态栏,而如果首页需要状态栏透明,就会出现启动过程中状态栏先闪现黑色背景再变为透明,解决办法参考方式二。
方式二:在Theme中设置属性
<style name="FlymeTheme" parent="@android:style/Theme.DeviceDefault.Light">
<item name="android:windowTranslucentStatus">true</item>
</style>
在AndroidManifest的<application>使用自定义的Theme,这样该App所有窗口都能呈现状态栏透明的效果。

2、由于系统默认状态栏图标文字为白色,在状态栏背景透明界面上,如果应用顶栏为浅色背景,那么状态栏图标、文字在浅色背景将难以识别。解决办法是通过StatusBarProxy.setStatusBarDarkIcon(Window window, boolean dark),应用根据实际需要设置状态栏图标及文字的颜色。使用方法在Activity#onCreate(Bundle savedInstanceState)方法中调用即可,请参考FlymeApiDemo。

二、白色系统键盘

Flyme4.0系统输入法有黑色和白色两种风格,系统应用弹出输入法基本都为白色,那么对于第三方应用,FlymeApi中也提供了方法设置白色系统输入法InputMethodProxy.setInputThemeLight(Context context, boolean light);该方法只需在应用Activity#onCreate(Bundle savedInstanceState)方法中调用一次即可,请参考FlymeApiDemo。

注意,该方法仅对系统输入法生效,对其他第三方输入法不起效。

三、锁屏壁纸

Android原生系统壁纸不区分锁屏壁纸和主屏幕壁纸,Flyme增加了设置锁屏壁纸的方法WallpaperManagerProxy.setLockWallpaper(Context context, String path),该方法不影响原生设置主屏壁纸方法,两者独立,分别设置锁屏和主屏壁纸。具体用法参考FlymeApiDemo。

四、Notification通知栏

1、设置Notification圆环ProgressBar的形状

在Flyme中包括原生系统自带的直线ProgressBar和Flyme风格的圆环形ProgressBar(简称CircleProgressBar),使用CircleProgressBar的接口如下:

 NotificationProxy. setProgressBarStype(Builder builder, boolean isCircle)

函数变量builder为android.app.Notification.Builder类型,isCircle为true时表示使用圆环形ProgressBar。使用方法如下:

 final Notification.Builder builder = new Notification.Builder(context);
builder.setLargeIcon(mIcon)
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("CirlceProgressBarNotification")
.setContentTitle("ContentTitle")
.setContentInfo("ContentInfo") 
.setContentText("ContentText")
.setWhen(0)
.setOngoing(true);        
NotificationProxy.setProgressBarStype(builder, true); NotificationProxy.setCircleProgressBarColor(0xff000000); NotificationProxy.setCircleProgressRimColor(0x00ff0000); ……

详细代码请参考FlymeApiDemos的实例。

2、设置Notification圆环ProgressBar的颜色

在设置进度条ProgressBar为圆环形状之后,还可以设置圆环进度的颜色和整个圆环边框的颜色,这两个接口分别为:
(1)NotificationProxy. setCircleProgressBarColor (int color)
(2)NotificationProxy. setCircleProgressRimColor(int color)

函数变量中color表示颜色值。
注意:这两个接口必需在设置ProgressBar为圆环(也就是调用setProgressBarStype函数并且设为true)之后才会生效。如果没有设置CircleProgress的颜色,那么则采用默认的颜色。为了使应用和Flyme风格统一,推荐不要设置CircleProgressBar的颜色。

导航菜单