Моя проблема связана с размерами на экранах - PullRequest
0 голосов
/ 23 января 2019

Я новичок в программировании, в некоторых устройствах мои размеры больше обычного. Я создал изображения с различными пикселями , затем я создал различных прорисовываемых каталогов с именами уровней dpi. Затем я помещаю изображения в рисование в соответствии с уровнями dpi. Тем не менее в некоторых телефонах изображения имеют слишком большой размер. как я могу подогнать картинки под все размеры экрана?

Спасибо

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout linearLayout = findViewById(R.id.Linlayout);

        Button btn = new Button(this);
        btn.setBackgroundResource(R.drawable.starblack);
        linearLayout.addView(btn);
    }
}

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я нашел способ сделать.если у вас есть лучший способ, я хотел бы услышать это, чтобы узнать также.мое решение:

    int h = (int) getResources().getDimension(R.dimen._75sdp);
    int w = (int) getResources().getDimension(R.dimen._75sdp);
    setLayoutParams(new RelativeLayout.LayoutParams(w, h));
0 голосов
/ 23 января 2019

Вы можете использовать эту библиотеку, чтобы упростить управление рисованием на экранах разных размеров.

Вот библиотека

Вы можете использовать только один максимизируемый размер xxxhdpi и указать высоту и ширину в SDP, который будет использоваться для всех экранов

Например, вот так

<ImageView
    android:id="@+id/ivImage"
    android:layout_width="@dimen/_9sdp"
    android:layout_height="@dimen/_18sdp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:src="@drawable/icon" />

Это самый простой способ управления чертежами на разных экранах.

ОБНОВЛЕНО

Для программной установки высоты и ширины в SDP, например:

button.getLayoutParams().width = (int) getResources().getDimension(R.dimen._52sdp);
button.getLayoutParams().height = (int) getResources().getDimension(R.dimen._58sdp);

OR

button.setLayoutParams (new LayoutParams((int) getResources().getDimension(R.dimen._58sdp), (int) getResources().getDimension(R.dimen._52sdp))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...