Articles of android 5.0 lollipop

Android:Appcompat 21如何在操作栏上添加阴影

我从新的appcompat中添加了新的材质设计操作栏,并使用了新的工具栏小部件。 我在xml的工具栏上设置了自定义背景,但我的问题是没有显示操作栏的阴影。 你知道怎么做吗? 工具栏代码 MyTheme风格 @color/abc_primary_text_material_dark @color/abc_primary_text_material_dark #ffff8800 MyTheme.Popup风格 #ffffff 更新 就像@Justin鲍威尔建议我在我的主题上添加actionBarStyle,但仍然没有投影。 MyTheme风格(更新) @color/abc_primary_text_material_dark @color/abc_primary_text_material_dark #ffff8800 @style/Widget.AppCompat.Light.ActionBar.Solid.Inverse

使用android 5.0在三星中崩溃的DatePicker

我在使用棒棒糖5.0在三星note 2设备中创建一个日期选择器时遇到了麻烦。 例外是: java.util.IllegalFormatConversionException: %d can not format java.lang.String arguments at java.util.Formatter.badArgumentType(Formatter.java:1489) at java.util.Formatter.transformFromInteger(Formatter.java:1689) at java.util.Formatter.transform(Formatter.java:1461) at java.util.Formatter.doFormat(Formatter.java:1081) at java.util.Formatter.format(Formatter.java:1042) at java.util.Formatter.format(Formatter.java:1011) at java.lang.String.format(String.java:1803) at android.content.res.Resources.getString(Resources.java:1457) at android.content.Context.getString(Context.java:397) at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription(SimpleMonthView.java:684) at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateNodeForVirtualView(SimpleMonthView.java:628) at com.android.internal.widget.ExploreByTouchHelper.createNodeForChild(ExploreByTouchHelper.java:377) at com.android.internal.widget.ExploreByTouchHelper.createNode(ExploreByTouchHelper.java:316) at com.android.internal.widget.ExploreByTouchHelper.access$100(ExploreByTouchHelper.java:50) at com.android.internal.widget.ExploreByTouchHelper$ExploreByTouchNodeProvider.createAccessibilityNodeInfo(ExploreByTouchHelper.java:711) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfVirtualNode(AccessibilityInteractionController.java:1179) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1091) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at […]

关于GcmTaskService的一些问题

背景 我想使用Lollipop上提供的新JobScheduler API,但遗憾的是它没有预先棒棒糖的官方端口。 但是,有GcmTaskService,它提供了非常相似的function。 问题 这个API很新,所以很少有地方可以查找如何使用它的信息(例如, 这里和这里 )。 问题 我对这个新API有几个问题: 它似乎需要使用Google Play服务( 此处 )(除非使用Lollipop版本的Android,它将使用普通的JobScheduler)。 如果Google Play服务不可用,我该怎么办? 似乎即使我使用“setPersisted(true)”来执行重复任务,当我重新启动设备时,也不会再次调用该任务。 怎么来的? 编辑:那是因为我错过了RECEIVE_BOOT_COMPLETED的许可。 如果我不使用“setRequiredNetwork”,任务的默认行为是什么? 是“NETWORK_STATE_ANY”吗? 文档说明了从onRunTask返回的内容,我可以返回任何值“RESULT_FAILURE”,“RESULT_RESCHEDULE”,“RESULT_SUCCESS”( 此处为 info)。 似乎FAILURE和SUCCESS选项都会做同样的事情 – 从队列中删除任务。 这是真的吗? 如果是这样,它们之间究竟有什么区别? 他们的function不同吗? “ TaskParams ”是否仅用于任务的标记? 我可以使用API​​以某种方式将捆绑包传递给任务吗? 否则,我需要设置一个DB来存储应该传递给任务的内容,对吗? 应用程序是否可以获取任务的队列? 我知道使用adb是可能的,但也可以使用API​​吗? 他们说( 这里 )每个任务都有一个长达3分钟的唤醒锁。 如果任务需要更多,应该怎么做? 它应该为自己获得另一个唤醒锁吗? API是否会警告唤醒锁被释放? 以下是文档所说的内容: 调度程序将为您的服务保留一个PowerManager.WakeLock,但是如果您的任务未返回,则执行三分钟后将被视为已超时,并且将释放唤醒锁。 此时重新安排任务将无效。 如果您怀疑任务的运行时间超过此时间,则应明确启动自己的服务或使用其他机制; 此API旨在用于相对快速的网络操作。 他们说( 这里 )每次应用程序升级/替换时都会删除所有网络任务,并且在发生这种情况时会调用“onInitializeTasks”,并且您可以再次重新安排它们。 我该如何重新安排任务? 我认为我甚至无法获得任务清单…… 有可能告诉任务更喜欢白天的特定时间吗? 例如,在14:00-15:00之间? […]

是否有任何官方API /样本/教程用于实施新的材料设计指南?

背景 谷歌最近为设计师添加了很多指南( 这里 ),包括大量关于事物如何运作的animation。 问题 当我阅读指南时,我决定尝试新设计,并使用支持库。 可悲的是,对于他们中的许多(或者可能是全部?),我无法find如何使用Google提供的官方API来实现它们。 例如,我试图找出他们如何实现这种名为“灵活空间与图像”的酷炫滚动效果(取自此处 ): 链接 。 但是,无论我在哪里搜索,我发现的唯一的东西就是第三方库(比如这个 )。 另一个例子是创建Material-design凸起按钮样式的方法(在此处发布) 我发现了什么 我在Android开发者博客上发现了非常具体元素的小片段(以及更多指南),例如此处和此处 ,但这还不足以使用它,更不用说支持Android前Lollipop版本了(那就是大多数设备现在)。 我也find了这个文档 ,但同样,它对设计师网站( 这里 )上显示的内容缺乏很多解释。 这个问题 是否有任何新的材料设计指南的API /样品/教程? 除了我发现的以外还有什么? 支持库是否有可能几乎不支持新设计? 我甚至找不到对话框支持和Prefereces,所以我在这里制作了一些东西(基于其他人的库)…… 有这么多animation的例子真的很奇怪,但没有真正的代码可以尝试和用于最佳实践……

在ImageButton外部实现Ripple效果

我正在尝试为ImageButton实现涟漪效果。我已经在src中设置了背景中的波纹和src中的可绘制图像。 android:background=”@drawable/myripplexml” android:src=”@drawable/myimagepath” 它在按钮布局中给出了很好的涟漪效果。 但是我希望Ripple效果也能扩展到Button Layout之外。另一种方法是使用: android:background=”?android:attr/selectableItemBackgroundBorderless” 但它使用默认颜色和样式。 如何在颜色,形状和尺寸方面进行自定义?

如何检查Android Lollipop电池保护程序是否已打开

Android Lollipop推出了一种可以随时打开的节电模式,默认情况下,当电池电量为15%或更低时,它会打开。 这对我的应用程序造成了问题,因为省电模式会禁用提供重要信息的animation。 (只是为了给出上下文,我的应用程序允许用户配置Android Wear表盘;当他们保存新的“主题”时,我将主题移动到操作栏上的按钮,以便他们知道它保存到的位置。电池保护程序禁用animation,当他们点击保存时没有任何反应,我认为这会令人困惑。) 那么,有没有办法以编程方式确定电池保护程序是否已打开? 这样我可以提供animation的替代方案,例如显示Toast。

无法在Android Lollipop 5.0中获取前台活动名称

我使用以下代码在variablesforegroundTaskPackageName中获取前台应用程序的活动名称。 它适用于4.1到4.4之间的所有操作系统版本,但在Android 5.0 Lollipop中不起作用。 任何人都可以帮助5.0 Lollipop中的变化吗? 在Lollipop中 – 我为foregroundTaskPackageName获取的文本只是’Launcher3’。 我正在使用Genymotion仿真器。 ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0); // get // list // of // running // tasks String foregroundTaskAppName = null; String foregroundTaskPackageName = foregroundTaskInfo.topActivity .getPackageName();

Appcompat工具栏未显示导航抽屉

我试图在我的应用程序中配置以下内容: 工具栏(Appcompat v7版) 导航抽屉 Pre- Lollipop Appcompat v7材料主题 我按照这里的说明操作: http : //android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html 但是,在主题中声明.NoActionBar之后,以及将工具栏放在布局中, 我的工具栏不会显示 。 我最终得到的正是你在宣布没有动作栏时所期望的 – 没有动作栏。 这是布局: Toolbar.xml: 在MainActivity.java中: // Load view/layout setContentView(R.layout.guidelib_activity_main); // TODO: Toolbar not showing mToolbar = (Toolbar)findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); 解 <!—-> …

带有Spannable的按钮setText不适用于Android 5.0 Lollipop

我有一个简单的Button : 并尝试通过以下方式更改文本属性: SpannableString span = new SpannableString(text); span.setSpan(new AbsoluteSizeSpan(8, true), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); testButton.setText(span); 它适用于Android 4.3,但不适用于5.0。 有趣的是,当我将实现从Button更改为TextView它在5.0上工作正常。 似乎是Lollipop中的Button 。

Android工作室无法渲染布局预览

我一直在使用Android Studio 0.8.6来开发应用程序,并且在使用API​​21时遇到布局预览问题。 我收到以下错误: 呈现问题:无法实例化以下类: – android.support.v7.widget.Toolbar 我有最新的SDK Build工具(21.0.2)以及下载和安装的完整API21。 我的targetSDKVersion在gradle文件中设置为21。 如果我将预览更改为使用API​​20渲染,一切似乎都很好。 下面提供了exception详细信息。 谢谢! exception详细信息java.lang.ClassNotFoundException:android.support.v4.content.ContextCompatApi21 at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:148)at java.lang.ClassLoader.loadClass(ClassLoader.java:424) )位于android.support.v7.intent.widget.TintManager.getDrawable的android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:319)的java.lang.ClassLoader.loadClass(ClassLoader.java:357) TintManager.java:133)在Android.support的android.support.v7.internal.widget.TintTypedArray.getDrawable(TintTypedArray.java:62)android.support.v7.widget.Toolbar。(Toolbar.java:248)。 v7.widget.Toolbar。(Toolbar.java:190)位于android.view的android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)的java.lang.reflect.Constructor.newInstance(Constructor.java:408)。 android.view.LayoutInflater.in中android.view.LayoutInflater.rInflate(LayoutInflater.java:782)的LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) flate(LayoutInflater.java:504)在android.view.LayoutInflater.inflate(LayoutInflater.java:385)