usar que porque poner pasa para los likes hashtags guardan funcionan etiquetas entre diferencia deja cuando como arroba alguien android vectordrawable android-vectordrawable

android - poner - porque no se guardan los hashtags en instagram



Vector de etiqueta dibuja inválido (11)

El problema era que mi actividad no estaba extendiendo AppCompatActivity sino que era una Activity regular.

Esto no está especificado en ninguna documentación / ejemplo para vectores de soporte dibujables

Estoy tratando de usar vectores dibujables en dispositivos pre-piruletas. Hice todo como se indica here pero sigo teniendo este bloqueo.

build.gradle:

buildscript { repositories { jcenter() } dependencies { classpath ''com.android.tools.build:gradle:2.0.0-beta6'' } } apply plugin: ''com.android.application'' repositories { maven { url ''http://maven.android-forever.com'' } jcenter() } android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.test.app" minSdkVersion 16 targetSdkVersion 22 versionCode 1 versionName "1.0" vectorDrawables.useSupportLibrary = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) testCompile ''junit:junit:4.12'' compile ''com.android.support:appcompat-v7:23.2.0'' compile ''com.android.support:design:23.2.0'' compile "de.greenrobot:eventbus:2.4.0" compile ''de.greenrobot:greendao:2.1.0'' compile "com.af:android-utility:1.0.0.9" compile project('':volleyplus'') compile project ('':libvlc'') }

triangle.xml:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/triangle_v"/> </selector>

triangle_v.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="100dp" android:width="100dp" android:viewportHeight="100" android:viewportWidth="100"> <path android:name="triangle" android:fillColor="#FF0000" android:pathData="m 50,0 l 50,100 -100,0 z"/> </vector>

layout.xml

<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/triangle"/>

También probé la app:srcCompat y en ese caso, dibujable simplemente no se muestra.



Enfrenté un problema similar y la propia respuesta de @ pedja es útil. De manera más general, como se menciona en el artículo de Chris Banes sobre compat draw vector , la biblioteca de soporte funciona inyectando su versión de ImageView sobre el sistema uno en pre-L a través de algunos hooks. Esto implícitamente requiere que se utilicen las versiones de clases de AppCompatActivity , como AppCompatActivity .

En mi caso, el vector dibujable se usa en una vista independiente de una tostada sin una actividad asociada, usando el contexto de la Aplicación. Terminé usando AppCompatImageView en la definición de diseño xml directamente, es decir, algo como

<android.support.v7.widget.AppCompatImageView android:id="@+id/some_id" android:layout_width="24dp" android:layout_height="24dp" android:src="@drawable/selector_referencing_vector_drawable"/>

por lo tanto, no es necesario el mecanismo mágico de "gancho". Una vez probado, esto también funciona con la clase de Activity sin la necesidad de usar AppCompatActivity . Todo lo anterior se realizó sin actualizar a 23.2.1, lo que solucionó un problema diferente.


Eso es todo lo que me gusta de Internet, y es trabajo para mí. Verifica cuál extrañas.

1) dentro de build.gradle

android { ... defaultConfig { ... vectorDrawables.useSupportLibrary = true } }

2) Debe usar buildToolsVersion ''27.0.3'' y compile ''com.android.support:appcompat-v7:27.0.3'' código de versión similar.

3) Utilice la versión superior a 3 gradle
classpath ''com.android.tools.build:gradle:3.0.1''

4) Para la app:srcCompat uso de ImageView app:srcCompat

xmlns:app="http://schemas.android.com/apk/res-auto" app:srcCompat="@drawable/ic_logo"

5) Pero si necesitas android:drawableLeft o android:drawableRigth etc. entonces:

ic_logo.xml (Vector xml)

<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:width="@dimen/home.button.icon" android:height="@dimen/home.button.icon" android:viewportWidth="24.0" android:viewportHeight="24.0" tools:ignore="VectorRaster"> <path android:fillColor="#FFFFFF" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/> </vector>

ic_logo_select.xml (selector de vectores)

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/ic_logo" /> <item android:drawable="@drawable/ic_logo" /> </selector>

Ahora puedes usar android: drawableLeft o android: drawableRight

<android.support.v7.widget.AppCompatButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_logo_select"/>

6) Y al final, setCompatVectorFromResourcesEnabled = true dentro de estática que se carga antes del método principal.

public class MainActivity extends AppCompatActivity { static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); .... } }


Este código va a funcionar con el vector si se usa
vectorDrawables.useSupportLibrary = true

Y cambie android:src a la app:srcCompat .

Por ejemplo,

<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/triangle"/>

a

<ImageView android:layout_width="match_parent" android:layout_height="match_parent" app:srcCompat="@drawable/triangle"/>


Este es el bug de la vn.2.2 de support-v4, appcompat-v7 que aparece en la API 19. @tim proporciona un enlace a este problema de error.

Puede actualizar a la nueva biblioteca versión 23.2.1 y el error está solucionado ahora.


Las respuestas que se dan aquí ignoran una situación en la que desea agregar un dibujo a una vista de texto porque genera el mismo error. en mi caso tuve

<TextView .... android:drawableLeft="some_vectore_drawable" />

No pude encontrar la forma de resolver esto, así que eliminé esa línea del código xml y la puse en mi código java de esta manera

Drawable somevectordrable = AppCompatDrawableManager.get().getDrawable(context, R.drawable.somevectordrawable); mytextview.setCompoundDrawableWithIntrinsicBounds(somevectordrable, null, null, null);

Aclaración para el código,

  1. Obtenga el vector dibujable de la carpeta de objetos dibujables usando AppCompatDrawableManager

  2. Establecer el dibujable que acabamos de obtener como el dibujable a la izquierda en nuestra textview


Si se ve usando <android.support.v7.widget.AppCompatImageView al cargar un vector dibujable, podría ser una mejor idea extender AppCompatActivity lugar de Activity y volver a usar la <ImageView...app:srcCompat="@drawable/... regular <ImageView...app:srcCompat="@drawable/...


También necesita incluir la nueva biblioteca de soporte vectorial:

compile ''com.android.support:support-vector-drawable:23.2.0''


También tuve este problema al cargar vectores desde un selector en dispositivos pre-lollipop:

Utilice AppCompatDelegate.setCompatVectorFromResourcesEnabled (true) en su método onCreate:

Establece si los vectores arrastrables en plataformas anteriores (<API 21) se pueden usar dentro de los recursos de android.graphics.drawable.DrawableContainer. Cuando está habilitado, AppCompat puede interceptar cierta inflación extraíble del marco, que permite la inflación implícita de los vectores arrastrables dentro de los recursos de android.graphics.drawable.DrawableContainer.

protected final void onCreate(Bundle savedInstanceState) { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); super.onCreate(savedInstanceState); ...


Funciona con 23.2.0 o 23.4.0, no con 23.3.0. ¡En serio, Google!

Primero, esta funcionalidad se lanzó originalmente en 23.2.0, pero luego encontramos problemas de uso de la memoria y de actualización de la configuración, así que lo eliminamos en 23.3.0. En 23.4.0 (técnicamente una versión de corrección) hemos vuelto a agregar la misma funcionalidad pero detrás de una bandera que necesita habilitar manualmente.

Ref: https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88#.waicp19gh