11
votes

Android: Dieable de ne pas montrer

J'ai un fichier XML assez simple qui a un bouton d'image. L'image montre une amende sur la disposition graphique XML Designer, apparaît bien lorsque j'exécute une construction de développement, mais dès que je crée le fichier APK signé et l'exécuter, l'image ne se présente plus. C'est juste un bouton vide. Je ne peux pas penser à une raison pour laquelle, des idées? Le fichier XML ressemble à ceci: xxx

L'image @ drables / chapitre est un fichier png assez petit (41 * 41) qui est dans le dossier RES / Drapable.


0 commentaires

7 Réponses :


2
votes

Essayez de mettre l'image dans le dossier digue-HDPI et Dossable-MDPI Dépend du périphérique que vous exécutez de votre application, l'image est recherchée dans ces dossiers ...

mais la mise sous sable signifie que l'image doit être disponible partout, mais sométhimes (dépend de vos paramètres manifestes) Cela pourrait ne pas être vrai, Je veux dire que vous pouvez tourner du mode de compatibilité. P>

Vous pouvez également essayer de dialiquez le temps d'exécution pour régler l'image sur la vue P>

iv.setImageResource(R.drawable.somethig);


1 commentaires

Je ne veux pas le mettre dans un dossier de densité d'écran spécifique car je veux que tous les appareils puissent utiliser l'image sans faire des copies. Réglage de l'image Dynamiquement n'a rien changé, cela ne s'affiche toujours pas sur la construction signée. Merci d'avoir essayé si Luk.



14
votes

On dirait que ceci est un bug avec Android, où parfois la première image du dossier digue ne s'affiche pas. Ajout d'une image factice appelée aaaa.png au dossier digue et à un problème a été résolu. Trouvé la réponse ici: ImageButton n'indique pas un


0 commentaires

8
votes

avait le même problème et résolu en supprimant tous les caractères spéciaux. Dans mon cas, c'était des tirets '-' dans le nom de fichier:

arrière-plan-720.png => arrière-plan.png .


0 commentaires

0
votes

Ma situation était weird.Toutes-toi était correcte jusqu'à ce que l'intégration de l'accident de Firebase à ma demande.

Je viens d'ajouter compile 'com.google.firebase: Firebase-Crash: 11.0.1' & Drawableleft a disparu . Quand j'ai traversé le XML, remarqua un avertissement (En doublé ci-dessous).

tellement ajouté Android: DrawaBableStart & Émission parti.

je m'interroge toujours sur la relation d'accident de Firebase rapportant à la même chose.

Utilisation de gauche / droite au lieu d'attributs de démarrage / de fin en utilisant la gravité # à gauche et la gravité # droit peut conduire à des problèmes lorsqu'une mise en page est rendue dans les lieux où le texte coule de droite à gauche. Utilisez la gravité # Démarrer et Gravity # fin à la place.

De même, dans XML Gravity et Layout_gravity Attributs, utilisez le début plutôt que de gauche. Pour les attributs XML tels que PaddingLeft et Layout_marginleft, utilisez PaddingStart et Layout_MarginStart.

REMARQUE: Si votre MINSDKVersion a moins de 17 ans, vous devez ajouter à la fois le Attributs plus grands gauche / droit ainsi que les nouveaux attributs de début / droit. Sur les plateformes plus anciennes, où RTL n'est pas prise en charge et le début / droite Les attributs sont inconnus et donc ignorés, vous avez besoin des plus âgés Attributs de gauche / droit.

Il existe un chèque de peluche séparé qui attrape ce type d'erreur. (Remarque: pour la gravité # Gauche et Gravity # Start, vous pouvez utiliser ces constantes. Même lors de la ciblage des plateformes plus anciennes, car le point de départ est un Superset du bitmask de gauche. Par conséquent, vous pouvez utiliser Gravity = "Démarrer" plutôt que la gravité = "gauche | start".)


0 commentaires

0
votes

Vérifiez votre taille d'image. Si vous utilisez un actif inutilement important lorsque vous l'avez déployé, il ne peut tout simplement pas montrer malgré l'approche de la concepteur.


0 commentaires

0
votes

Eh bien! Dans mon cadre de cas MinifyEnabled False et RétrécitResources false fonctionne bien maintenant.

J'avais l'image de digue. Il travaillait assez bien dans la version de débogage, mais après la version de la version de APK, il appartenait parfois à Image ImageView.

minisciable RétrécitResources True

**

Voir les captures d'écran

**

 ** avant **  ** après **

espère que cela peut aider n'importe qui.


0 commentaires

8
votes

Une des raisons est

Si vous utilisez le fichier vecteur comme étiez à gauche ou à droite, vous devez utiliser.

android.support.v7.widget.appcompatbutton

au lieu de

bouton

Vue simple comme Bouton, TextView ne prend pas en charge Vecteur sous forme de Diable à gauche droite dans mon cas


0 commentaires