Articles of 5.0 lollipop

材料devise支持库

是否正在努力将新的Material Design样式和小部件移植到Android的前L版本,类似于“HoloEverywhere”-library? 该库的创build者已经初始化了一个空的GitHub库,但似乎没有积极的开发。 我知道有一个L型对话框和浮动动作button的回传,但显然还有很多Android L已经改变的小部件。 Android团队是否在支持库(超出当前可用的版本)上发表任何消息?

Android的棒棒糖知道应用程序作为使用统计访问

由于Android棒棒糖,我们现在有一个访问应用程序使用统计的API。 但是,您的应用程序必须由用户授予这些权限。 我知道使用Settings.ACTION_USAGE_ACCESS_SETTINGS将用户redirect到这些设置。 现在,我的问题是您怎么知道用户已经授予您这些权限,以便您可以停止将他redirect到设置。 谢谢!

在Lollipop上使用Android存储访问框架列出文件时出现问题

背景 我有几个应用程序大量使用SD卡进行文件同步。 Kitkat的外部SD卡访问问题仍然是一个大问题,但是我正在尝试使用Lollipop上提供的新API来解决这个问题。 我成功地请求并持久许可SD卡,并且我可以列出授予许可活动返回的根Uri中的文件。 有关如何在这里完成的更多信息: 如何使用新的SD卡访问API显示为棒棒糖 然后用户可以select任何文件夹/子文件夹进行同步,并将文件夹文档Uri作为string保存在数据库中。 问题 稍后,可能在应用程序重新启动之后,可以启动文件同步。 然后我尝试列出子文件夹中的文件(请记住,我有正确的权限授予和持久性的这种作品,也授予我访问所有的孩子)。 然后,我从存储的string中创build一个DocumentFile的新实例,并尝试列出这些文件: DocumentFile dir = DocumentFile.fromTreeUri(ctx, Uri.parse(storedUri)); dir.listFiles(); 问题是listFiles总是返回根Uri授予的子项,从来没有实际Uri的子项我给DocumentFile.fromTreeUri方法。 我已经检查了DocumentFile的源代码,似乎有一个错误,具体我没有看到需要进一步修改Uri: public static DocumentFile fromTreeUri(Context context, Uri treeUri) { final int version = Build.VERSION.SDK_INT; if (version >= 21) { return new TreeDocumentFile(null, context, DocumentsContractApi21.prepareTreeUri(treeUri)); } else { return null; } 如果我们看一下DocumentsContractApi21.prepareTreeUri的来源,我们看到重buildUri: public static Uri prepareTreeUri(Uri treeUri) { […]

使用Android 5.0的三星设备改变进度条颜色

Android 5.0的三星设备会忽略进度条的颜色(在styles.xml中设置)。 使用三星默认的蓝色代替。 <style name="Progress"> <item name="colorControlActivated">#000000</item> </style> 进度条在工具栏中: <android.support.v7.widget.Toolbar … > <ProgressBar android:id="@+id/progress_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminate="true" android:theme="@style/Progress"/> </android.support.v7.widget.Toolbar> 有任何想法吗?

Android MediaCodec在asynchronous模式下进行编码和解码

我试图解码一个文件中的video,并将其编码为与MediaCodec不同的格式,支持API Level 21及更高版本(Android OS 5.0 Lollipop)的新asynchronous模式 。 在诸如Big Flake ,Google的Grafika以及StackOverflow上的几十个答案等站点上,有许多同步模式的例子,但是它们都不支持asynchronous模式。 在这个过程中,我不需要显示video。 我相信一般的过程是用MediaExtractor读取文件作为MediaCodec (解码器)的input,允许解码器的输出渲染到也是MediaCodec (编码器)的共享input的Surface中,然后最后通过MediaMuxer编写Encoder输出文件。 Surface是在编码器设置过程中创build的,并与解码器共享。 我可以把video解码成一个TextureView ,但是用编码器而不是屏幕共享Surface还没有成功。 我为我的两个编解码器设置了MediaCodec.Callback() 。 我相信一个问题是我不知道在编码器的callback的onInputBufferAvailable()函数中onInputBufferAvailable() 。 我不知道如何(或知道如何)将数据从Surface复制到编码器中 – 这应该是自动发生的(就像在解码器输出上用codec.releaseOutputBuffer(outputBufferId, true); )所做的那样)。 然而,我相信onInputBufferAvailable需要调用codec.queueInputBuffer才能正常工作。 我只是不知道如何设置参数,而不像解码端使用的MediaExtractor那样获取数据。 如果您有一个打开video文件的示例,对其进行解码,使用asynchronousMediaCodeccallback将其编码为不同的分辨率或格式,然后将其另存为文件 ,请分享您的示例代码。 === 编辑 === 这是一个在asynchronous模式下我正在尝试做同步模式的工作示例:ExtractDecodeEditEncodeMuxTest.java: https ://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media /src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java这个例子是在我的应用程序

为第三方应用程序强制使用Wi-Finetworking

我有一个Android应用程序和通过Wi-Fi可用的服务器。 对于某些操作(例如从服务器进行videostream传输),我的应用程序通过共享文件的URL来使用第三方应用程序。 从Android L开始,设备可以同时连接到Wi-Fi和蜂窝,由于服务器没有互联网和蜂窝networking被Android(因为它具有互联网),所以会打破我的应用程序,所以URL不能被parsing。 我通过bindProcessToNetwork()将我的应用绑定到Wi-Fi来解决这个问题。 但是,当应用程序与第三方应用程序共享URL时,由于第三方应用程序未绑定到Wi-Fi,所以URL仍然无法parsing。 有没有办法让第三方应用程序使用Wi-Fi,而不是手机,而开放我的应用程序提供的url?

Android L的RecyclerView中的挑战

我一直在玩RecyclerView一点点。 有没有简单的方法把OnClickListener的项目在RecyclerView ? 我曾尝试在ViewHolder实现它。 onClick事件从来没有被触发。 我已经使用notifyItemInserted(position)向RecyclerView添加新的值。 用户界面不会自动刷新。 需要上下刷新。 但是,当我调用notifyDatasetChanged(..) ,没关系。 我已经将DefaultItemAnimator应用于RecyclerView 。 但是,添加新项目时没有看到任何animation。 感谢提前任何想法。 这是我testing过的第一个Android L组件,我在那里玩。 这是我的适配器类: public class AdapterRecyclerView extends RecyclerView.Adapter<AdapterRecyclerView.MyViewHolder> { private List<String> arrExperiences; //Provide a reference to the type of views that you are using – Custom ViewHolder public class MyViewHolder extends RecyclerView.ViewHolder { public TextView tvExperienceTitle; public TextView tvExperienceDesc; public MyViewHolder(RelativeLayout […]

ScrollView中的PercentRelativeLayout

我已经创build了一个使用ScrollView的布局,其中有一个PercentRelativeLayout作为其子。 它不适用于棒棒糖和较旧的设备,但在棉花糖设备上工作正常。 请检查下面的代码: <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <android.support.percent.PercentRelativeLayout android:id="@+id/scrollContent" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_heightPercent="100%" app:layout_widthPercent="50%"> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_red_dark" android:text="kkjknadko" android:textColor="@android:color/black" app:layout_heightPercent="10%" app:layout_widthPercent="50%"/> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:text="Abcaad" android:textColor="@android:color/black" app:layout_heightPercent="10%" app:layout_marginTopPercent="10%" app:layout_widthPercent="50%"/> <TextView android:id="@+id/textview3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textview2" android:background="@android:color/holo_red_dark" android:text="Abcd" android:textColor="@android:color/black" app:layout_heightPercent="10%" app:layout_marginTopPercent="10%" app:layout_widthPercent="50%"/> <TextView android:id="@+id/textview4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textview3" android:text="Abcd" android:textColor="@android:color/black" app:layout_heightPercent="10%" app:layout_marginTopPercent="10%" app:layout_widthPercent="50%"/> <TextView […]

DialogFragmentbutton颜色在棒棒糖中变化

我希望我的碎片与我应用的其他应用程序和调色板保持一致,所以我想要改变标题的颜色,还要改变正面/负面button的颜色: 我试图这样做,但不幸的是它不工作: public void onStart() { super.onStart(); Dialog d = getDialog(); int dividerId = d.getContext().getResources().getIdentifier("android:id/titleDivider", null, null); View divider = d.findViewById(dividerId); if(currentapiVersion< Build.VERSION_CODES.LOLLIPOP) { divider.setBackgroundColor(getResources().getColor(R.color.accent)); LinearLayout ll = (LinearLayout) d.findViewById(R.id.dialog_background); ll.setBackgroundResource(R.drawable.backrepeat_reversed); } if(currentapiVersion == Build.VERSION_CODES.LOLLIPOP) { int buttonsId = d.getContext().getResources().getIdentifier("android:id/negativeButton", null, null); Button b = (Button) d.findViewById(buttonsId); b.setTextColor(getResources().getColor(R.color.accent)); } int textViewId = d.getContext().getResources().getIdentifier("android:id/alertTitle", null, null); […]

带有浮动操作button的循环进度

我正在研究新的材料devise,我有一些问题。 我想知道,如果你们中的一些人知道我怎么能做一个进度条,像这样的浮动动作buttonhttps://dribbble.com/shots/1644982-Animated-circle-loader-FAB-with-integration-gif Android L上有这个API吗? 谢谢