Error de soporte del vector de Android
Mi aplicación se ejecuta sin problemas en 5.1.0, pero cuando se ejecuta en 4.2.2 se muestra un error:
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
He investigado sobre esto. Se dice error en la adición de soporte vectorial en gradle, por lo que añadí:
- Dirección de aceleración lineal para realizar un seguimiento del movimiento hacia arriba y hacia abajo del teléfono
- Java: Tamaño de un vector en bytes
- Android Animated Vector Drawable: cambia el grado de rotación en tiempo de ejecución
- Set Vector Drawable en ImageView causa que la aplicación se bloquee en SDK antiguo
- Convertir Vec4i a Java openCV
compileSdkVersion 23 buildToolsVersion "25.0.1" defaultConfig { applicationId "com.wmt.android.troopool" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "0.1" multiDexEnabled true renderscriptTargetApi 18 renderscriptSupportModeEnabled true vectorDrawables.useSupportLibrary = true } compile 'com.android.support:support-vector-drawable:23.2.0' compile 'com.android.support:animated-vector-drawable:23.2.0'
vectorDrawables.useSupportLibrary = true
y dos dependencias en el archivo gradle.
Pero muestra el mismo error en 4.4.2.
- Cómo crear dibujos vectoriales para Android?
- Aceleración del sistema de coordenadas del dispositivo en sistema de coordenadas absoluto
- Conseguir vector de dirección en Android
- EditText drwableLeft no funciona con vectores
- ¿Dónde puedo ir para las imágenes de Android Market? Una imagen vacía de la tableta que puedo pegar mi aplicación en ejecución en un gráfico promocional sería perfecto
- XmlPullParserException: vector de etiqueta desplegable no válido
- Android studio 1.4 y la imagen vectorial
- Biblioteca de Android sobre el recurso de reemplazo
Hola para utilizar vector drawables en android por debajo de lollipop que necesita para colocar las imágenes de su código aquí son algunas funciones que deberían ayudarle a hacer lo que quieras
public static enum DrawablePosition { Left, Right, Top, Bottom } public static Drawable getDrawable(Context context, int drawable) { return DrawableCompat.wrap(VectorDrawableCompat.create(context.getResources(), drawable, null)); } public static Drawable getDrawableWithColor(Context context, int drawableResId, int IntColorOfDrawable) { Drawable drawable = VectorDrawableCompat.create(context.getResources(), drawableResId, null); DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, IntColorOfDrawable); DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN); return drawable; } public static void setDrawableWithColorForIds(AppCompatActivity activity, int color, int[] ids, int drawable[]) { for (int i = 0; i != ids.length; i++) { Drawable drawable1 = VectorDrawableCompat.create(activity.getResources(), drawable[i], null); DrawableCompat.wrap(drawable1); DrawableCompat.setTint(drawable1, color); DrawableCompat.setTintMode(drawable1, PorterDuff.Mode.SRC_IN); ((TextView) activity.findViewById(ids[i])).setCompoundDrawablesWithIntrinsicBounds(drawable1, null, null, null); } } public static void placeVectorOnTextView(Context context, TextView textView, int vectorDrawableResID, @Nullable Integer VectorColor, DrawablePosition position) { Drawable drawable = VectorDrawableCompat.create(context.getResources(), vectorDrawableResID, null); DrawableCompat.wrap(drawable); if (VectorColor != null){ DrawableCompat.setTint(drawable, VectorColor); DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN); } switch (position) { case Left: textView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); break; case Bottom: textView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable); break; case Right: textView.setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null); break; case Top: textView.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null); break; } } public static void placeVectorOnEditText(Context context, EditText editText, int vectorDrawableResID, int VectorColor, DrawablePosition position) { Drawable drawable = VectorDrawableCompat.create(context.getResources(), vectorDrawableResID, null); DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, VectorColor); DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN); switch (position) { case Left: editText.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); break; case Bottom: editText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable); break; case Right: editText.setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null); break; case Top: editText.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null); break; } } public static void placeVectorOnButton(Context context, Button button, int vectorDrawableResID, int VectorColor, DrawablePosition position) { Drawable drawable = VectorDrawableCompat.create(context.getResources(), vectorDrawableResID, null); DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, VectorColor); DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN); switch (position) { case Left: button.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); break; case Bottom: button.setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable); break; case Right: button.setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null); break; case Top: button.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null); break; } } public static void placeVectorOnRadioButton(Context context, RadioButton radioButton, int vectorDrawableResID, int VectorColor, DrawablePosition position) { Drawable drawable = VectorDrawableCompat.create(context.getResources(), vectorDrawableResID, null); DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, VectorColor); DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN); switch (position) { case Left: radioButton.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); break; case Bottom: radioButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable); break; case Right: radioButton.setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null); break; case Top: radioButton.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null); break; } } public static void placeVectorOnCheckBox(Context context, CheckBox checkBox, int vectorDrawableResID, int VectorColor, DrawablePosition position) { Drawable drawable = VectorDrawableCompat.create(context.getResources(), vectorDrawableResID, null); DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, VectorColor); DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN); switch (position) { case Left: checkBox.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); break; case Bottom: checkBox.setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable); break; case Right: checkBox.setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null); break; case Top: checkBox.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null); break; } }
- 129 error y error 133 de Rxble durante la operación de lectura y escritura
- Detectar si el video se tomó en modo retrato / paisaje