小编Beh*_*yar的帖子

在前Lollipop崩溃时使用Android矢量Drawables

我在Lollipop之前使用android中的矢量drawables,这些是我的一些库和工具版本:

  • Android Studio:2.0
  • Android Gradle插件:2.0.0
  • 构建工具:23.0.2
  • Android支持库:23.3.0

我在我的应用级别添加了此属性 Build.Gradle

android {  
  defaultConfig {  
    vectorDrawables.useSupportLibrary = true  
   }  
}
Run Code Online (Sandbox Code Playgroud)

还值得一提的是,我使用了一个额外的drawable,如Android官方博客(此处链接)中所述的LayerDrawable(layer_list),用于设置外部矢量绘图的drawablesapp:srcCompat

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/search"/>
</level-list>
Run Code Online (Sandbox Code Playgroud)

你会发现在app之外直接引用矢量drawable:srcCompat将在Lollipop之前失败.但是,AppCompat确实支持在另一个可绘制容器(如StateListDrawable,InsetDrawable,LayerDrawable,LevelListDrawable和RotateDrawable)中引用它们时加载矢量drawable.通过使用此 间接,您可以在TextView的android:drawableLeft属性中使用向量drawable,这通常不能支持向量drawable.

当我使用的app:srcCompat一切工作正常,但当我使用时:

android:background
android:drawableLeft
android:drawableRight
android:drawableTop
android:drawableBottom
Run Code Online (Sandbox Code Playgroud)

ImageView,ImageButton,TextViewEditText到棒棒糖之前,它引发厚望:

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/search_toggle.xml from drawable resource ID #0x7f0200a9
Run Code Online (Sandbox Code Playgroud)

android vector android-compatibility android-support-library android-drawable

81
推荐指数
9
解决办法
5万
查看次数

Android SeekBar最小值

有谁知道如何定义SeekBar的最小值?这是在XML布局中完成还是我需要以编程方式定义它?

基本上我需要将最小值从0更改为0.2

java android seekbar android-view

76
推荐指数
6
解决办法
8万
查看次数

Android Android支持存储库与Android支持库与谷歌存储库与谷歌播放服务之间的区别是什么

有人可以解释一下,请问Android支持资源库与Android支持资源库与谷歌资源库与谷歌播放服务有什么区别?

我的理解是,Google Repository与Google Play服务完全相同,只是将所有api分开(与经典的播放服务相比,这是一个包含所有内容的大jar)并且更适合在android studio中使用,因为现在您可以选择你想编译什么api(例如'com.google.android.gms:play-services-ads:+')vs依赖proguard在构建时去除不需要的api.

我对吗?

Android支持存储库与Android支持库如何?

android android-support-library google-play-services android-gradle-plugin android-sdk-manager

62
推荐指数
3
解决办法
2万
查看次数

BroadcastReceiver的Manifest和Programmatic注册之间的主要区别

我试图理解在Manifest中注册BroadcastReceiver和以编程方式注册它之间的主要区别...

我的理解基本如下(如果我遗漏了某些东西,我会感谢有人纠正我的观点).

  • 在Manifest中注册:

    1. 如果需要,操作系统将神奇地查找并实例化您的类,调用onReceive()方法,无论您的应用程序的运行状态是什么
    2. 您的接收只会在每次广播时被呼叫一次(即您可以认为在清单中注册就像注册您的"班级"以接收广播一样 - 并且广播会根据需要实例化您的班级)(??)
  • 以编程方式注册:

    1. 在代码中注册意味着您正在注册您的类的实例以接收广播消息(即,如果您的代码有点草率,并且您设法多次注册,则最终会有多个BroadcastReceiver实例都调用其onReceive()广播
    2. 要取消注册,您需要取消注册先前注册的特定BroadcastReceiver实例
    3. 如果您的应用程序被操作系统销毁,则不会为广播调用onReceive()方法

谢谢

android broadcastreceiver android-lifecycle

19
推荐指数
2
解决办法
6954
查看次数

Android:如何使用RecyclerView实现图库

我想创建一个一个图片库TextView的头和ImageViews一个HorizontalScrollView像它显示在此.

我使用a RecyclerView减少我的应用程序的资源,并实现与许多ArrayList像:

        itemFotoIDs.addAll(Arrays.asList(
                R.drawable.cable_crunches_1
                ,R.drawable.dips_1
                ,R.drawable.kabelrudern_breit_1
                ,R.drawable.kabelrudern_eng_1
                ,R.drawable.klimmzug_1
                ,R.drawable.kh_schulterdruecken_1
                ,R.drawable.kh_curls_1
                ,R.drawable.lh_bankdruecken_1
                ,R.drawable.lh_bankdruecken_eng_1
                ,R.drawable.lh_kniebeuge_1
                ,R.drawable.lh_kreuzheben_1
                ,R.drawable.lh_schraegbankdruecken_1
                ,R.drawable.latzug_obergriff_1
                ,R.drawable.seitheben_1
                ,R.drawable.szhantel_curls_1
        ));
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:在一行中创建一个空条目的最佳解决方案是什么ArrayList,例如,我有五个ArrayList有15个条目,两个只有14或13个条目.但我希望在确切的行而不是在结尾处的空条目.我试图实现一个null而不是R.drawable.但这会导致应用程序崩溃.

null android arraylist horizontalscrollview android-recyclerview

5
推荐指数
1
解决办法
2737
查看次数