Как изменить размер изображения и изменить положение «ImageView» по шкале экрана - PullRequest
1 голос
/ 27 марта 2020

?Текстовый код MainActivity. java и activity_main. xml существуют в нижней части статьи?

Я собираюсь установить изображения с одинаковым соотношением ( 16: 9) для ImageView, но я столкнулся с небольшой проблемой.

Я хочу установить Мой ImageView Оставить соотношение 16: 9, какое из передаваемых изображений (1920 * 1080)

, если я использую wrap_content, , остается соотношение данной картинки, но я не могу изменить размер ImageView. enter image description here

.

, если я использую фиксированные числа с соотношением 16: 9, например 400dp * 225dp
Я могу изменить желаемый размер и изменить положение по шкале экрана, используя app:layout_constraintHorizontal_bias= и app:layout_constraintVertical_bias=

Но в других устройствах размер ImageView слишком мал или слишком большой для его экранного пространства. потому что значение фиксировано enter image description here enter image description here

Итак, я хочу установить ImageView Размер и положение по экранной шкале устройства с оставшимися его соотношение (16: 9) Как я могу это сделать?

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

Есть ли какой-нибудь способ для express следующим образом? это не настоящий код, это просто псевдокод, чтобы легко объяснить, что я действительно хочу сделать.

android:layout_width="wrapcontent * 0.8"
android:layout_height="wrapcontent * 0.8"  //<!-- same as "layout_width * 9 / 16 " because ratio of give picture will be always 16 : 9 -->

app:layout_constraintHorizontal_bias=" ((Screen_width - ImageView_width) / 2) / 100 " //<!-- pseudo percentage that to stay in Screen's center -->
app:layout_constraintVertical_bias= "0.3" //<!-- pseudo percentage that to stay in Screen's custom upper part-->

Я прошу прощения за путаницу в вашем объяснении и надеюсь, что у вас мирный день. MainActivity.Код для java и activity_main. xml ниже.

MainActivity. java

package com.example.catexample;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // I Want to Resize and Reposition 'ImageView' by Screen Scale remain its ratio( 16 : 9)
        ImageView imageView = findViewById(R.id.kitti_DD);
    }

}

activity_main. xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/kitti_DD"
        android:layout_width="400dp"
        android:layout_height="225dp"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"

        app:layout_constraintHorizontal_bias="0.1"
        app:layout_constraintVertical_bias="0.3"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"

        app:srcCompat="@drawable/kittisaurus_dd" />

</androidx.constraintlayout.widget.ConstraintLayout>

kittisaurus_dd.jpg enter image description here

пс. Имя милой кошки, используемое в качестве примера, DD , и он возник из видео 크 집사 , а не 크림 히어로즈.

От всего сердца благодарю вас за чтение длинной статьи! 10 ​​

1 Ответ

1 голос
/ 27 марта 2020

Установите ширину и высоту равными 0dp, добавьте атрибут app:layout_constraintDimensionRatio и установите для его значения желаемое соотношение сторон, например: 4: 3, 16: 9 и т. Д. c.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...