Comment faire ImageButton dans Android à l'échelle automatiquement en fonction de la densité de l'écran?

StackOverflow https://stackoverflow.com/questions/2047554

  •  20-09-2019
  •  | 
  •  

Question

J'ai une image mettre sur un ImageButton, ce qui semble bon sur un mdpi ( moyen ppp ) écran. Cependant, lorsque le dispositif a une hdpi ( haute ppp ) écran, l'image est encore pixel par pixel précis, qui ont l'air petit sur l'écran de l'appareil.

Comment puis-je faire de telle sorte que l'image (et par conséquent le ImageButton) mis à l'échelle en fonction des pixels indépendants de la densité ( dp ou dip ) au lieu de pixels?

Était-ce utile?

La solution

Comme mentionné Ponkin, 9-patches sont votre meilleur pari. Combiné avec des qualificatifs de l'annuaire des ressources (drawable-hdpi, drawable-mdpi, etc.), vous pouvez faire des actifs qui semblent bonnes à tout densité et la taille.

Un exemple de 9-patches et qualificatifs du répertoire des ressources se trouve dans le Résolutions de plusieurs échantillon SDK Android. Le semi-transparent, noir, fond aux coins arrondis est implémenté comme un 9-patch avec différents PNGs pour LDPI, mdpi et hdpi.

Autres conseils

android:scaleType="fitXY"

D'autres choix sont:

fitStart
fitCenter
fitEnd
center
cenerCrop
centerInside
matrix

Rappelez-vous que je suis paresseux et vraiment utiliser de grandes images PNG dans un dossier brut.

à mon humble avis, vous devriez regarder assez près de NinePatchDrawable . Il y a, en fait, un outil de rel="noreferrer"> qui vous aidera à faire votre icône (images / icônes / whatever ...) redimensionnable selon la taille du récipient. It `s vraiment simple et fonctionne très bien pour mes besoins. Regardez aussi cet article (partie "NinePatchDrawable"), il explique le mécanisme NinePatchDrawable.

  

Un graphique NinePatchDrawable est une image en mode point extensible, qui   Android redimensionnera automatiquement   accueillir le contenu de la vue   que vous avez placé comme   Contexte. Un exemple d'utilisation d'un   NinePatch est les arrière-plans utilisés par   boutons standard Android - boutons   doit s'étirer pour recevoir des chaînes de   différentes longueurs. Un drawable NinePatch   est une image standard PNG qui comprend   un supplément de 1 pixel large bordure. Il doit   être enregistré avec l'extension .9.png,   et enregistré dans la résolution / drawable /   répertoire de votre projet.

Peut-être que vous devez simplement spécifier la taille du bouton en pixels indépendants du périphérique-?

android:layout_width="300dip" 
android:layout_height="50dip"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top