如何通过屏幕缩放调整“ ImageView”的大小和位置,保持其比例

问题描述 投票:0回答:1

🌟MainActivity.java和activity_main.xml的文本代码位于文章底部🌟

我将与ImageView设置相同比例(16:9)的图像,但是我遇到了一个小问题。

我想将我的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的大小对于其屏幕空间为too smalltoo太大。因为值是固定的enter image description hereenter image description here

所以,我要通过设备的屏幕比例设置ImageView大小和位置,并保持其比例(16:9)我该怎么办?

我看过很多问题,但是我找到了一种“使imageView的比例与图片匹配”而不是“相对于屏幕尺寸设置ImageView的尺寸”的方法,这使我的搜索能力很差。

有什么方法可以表达如下?这不是真正的代码,它只是伪代码,可以轻松地解释我真正想要制作的内容。

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.jpgenter image description here

ps。可爱的猫咪的名字为DD,它源自크집사的视频,而不是크림히어로not。

衷心感谢您阅读这篇长篇文章!😻

java android imageview
1个回答
0
投票

将宽度和高度设置为0dp并添加app:layout_constraintDimensionRatio属性,并将其值设置为所需的宽高比,例如:4:3、16:9等)>

© www.soinside.com 2019 - 2024. All rights reserved.