J'ai un bouton avec la taille width=216
et height=110
dans une résolution d'écran de l'appareil est 1080 x 1920. Lorsque je change de l'autre appareil (plus petite résolution), le bouton est si gros. Par conséquent, j'ai besoin d'écrire une fuction pour changer dynamiquement la taille du bouton selon la résolution de l'appareil. Tout d'abord, je vais vérifier la résolution de l'appareil cible, puis je le modifie en fonction de dessus de mon appareil actuel. Cependant, la résolution du bouton n'est pas correcte. Comment puis-je le réparer? Ceci est mon codeComment changer la taille du bouton en fonction de l'appareil?
Mon code dans le 1080x1920
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn"
android:layout_width="216dp"
android:layout_height="110dp"
android:layout_gravity="center"
android:scaleType="fitCenter"
/>
</LinearLayout>
Changé à façon dynamique:
public int WIDTH ;
public int HEIGHT ;
//Get screen resolution
DisplayMetrics metrics = getResources().getDisplayMetrics();
HEIGHT = metrics.heightPixels;
WIDTH= metrics.widthPixels;
int height_px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 110, getResources().getDisplayMetrics());
int weight_px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 216, getResources().getDisplayMetrics());
int width_linearlayout = Math.round((float)weight_px/1080*WIDTH);
int height_linearlayout = Math.round((float)height_px/1920*HEIGHT);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width_linearlayout,height_linearlayout);
btn.setLayoutParams(layoutParams);
Avez-vous lu par [Soutenir Layouts multiples] (https: // développeur. android.com/guide/practices/screens_support.html)? Si non, je vous suggère de continuer et de jeter un coup d'œil. – Abbas
@Abbas: Il est de xml et dossier drawable. Je veux changer mon bouton en utilisant la programmation – user8264
Ensuite, vous devrez faire beaucoup de travail vaut très peu. Je vous suggère de le faire via des mises en page. Vérifiez @slackwars répondre que c'est le meilleur moyen d'atteindre ce que vous voulez. Cependant, la solution ne fonctionne que si vous avez des dispositions similaires. Pour différentes dispositions pour différentes tailles, vous devrez ajouter plusieurs mises en page à la place. – Abbas