Intereting Posts
Как загрузить файл сопоставления в Firebase? Android – как сделать сложное приложение с вкладками с представлениями Как установить предварительный просмотр камеры в качестве фона для просмотра поверхности на экране rajawali & capture с помощью 3D Obj & Camera preview Периодические запросы HTTP с использованием RxJava и дооснащения Разница между Intent.ACTION_GET_CONTENT и Intent.ACTION_PICK SlidingPaneLayout – как всегда показывать небольшую часть слайд-представления (например, в тусовках) Как я могу снять или сбросить переключатель? Espresso – утверждение TextView с асинхронными загруженными данными Как использовать библиотеки в AIDE Получение программной плотности экрана в андроиде? Входящие в Google, такие как функция RecyclerView, открытая анимация Альтернативы EditText в виджете? Должен быть способ Какой из них лучше между использованием статического var и параметра объекта передачи? PhoneStateListener onMessageWaitingIndicatorChanged () не называется надежно Начальный размер PNG для Android 9-Patch?

Использует ли setWidth (int pixels) dip или px?

Использует ли setWidth (int pixels) автономный пиксель устройства или физический пиксель как единое целое? Например, устанавливает ли setWidth (100) ширину представления 100 обрывов или 100 пикселей?

Благодарю.

Solutions Collecting From Web of "Использует ли setWidth (int pixels) dip или px?"

Он использует пиксели, но я уверен, что вам интересно, как использовать провалы. Ответ в TypedValue.applyDimension() . Вот пример того, как конвертировать образы в px в код:

 // Converts 14 dip into its equivalent px Resources r = getResources(); float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, r.getDisplayMetrics()); 

Правильный способ получить постоянное количество DIP в коде – создать XML-файл ресурсов, содержащий значения dp, немного похожие на:

 <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="image_width">100dp</dimen> <dimen name="image_height">75dp</dimen> </resources> 

Затем обратитесь к ресурсу в вашем коде следующим образом:

 float width = getResources().getDimension(R.dimen.image_width)); float height = getResources().getDimension(R.dimen.image_height)); 

Поплавок, который вы вернули, будет соответствующим образом масштабироваться для плотности пикселей устройства, поэтому вам не нужно сохранять репликацию метода конверсии во всем приложении.

 float dps = 100; float pxs = dps * getResources().getDisplayMetrics().density; 

Источник (@Romain Guy)

Метод setWidth (100), установите 100 px как ширину (не в dp). Таким образом, вы можете столкнуться с разными проблемами на разных телефонах Android. Используйте измерение в dp вместо пикселей. Используйте приведенный ниже код, чтобы получить измерение в dp ширины образца = 300px и height = 400px.

 int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300, getResources().getDisplayMetrics()); int Height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 400, getResources().getDisplayMetrics()); 

Пиксели, конечно, метод запрашивает пиксели в качестве параметра.