Android 如何让组件的高度等于宽度
Posted
技术标签:
【中文标题】Android 如何让组件的高度等于宽度【英文标题】:Android How to get the height equal the width of an component 【发布时间】:2020-01-26 09:18:24 【问题描述】:我想让 ImageView 的高度等于它的宽度。我已经阅读了有关在 activity.xml 中使用“app:...”的内容。 但是,它说它找不到命名空间。在那之后,我发现了一个对我不起作用的代码。
是否有人有解决此问题的想法或建议?如果必须以编程方式完成,如果有一个使用 Kotlin 的示例,那就太好了。
【问题讨论】:
您说的是哪个组件?另外,请显示您已经尝试过的代码。 您可以创建custom imageview
并提供height
和width
与width
相同,请参阅此链接它在java 中可能会对您有所帮助***.com/a/16506373/9792247
我认为 ConstraintLayout 有这样的功能,但由于我没有使用它 - 我不知道具体如何
正如我在关于 ImageView 的问题中所说的
@TakeInfos 看起来不错,但是我现在如何在我的代码中组合这个 SquareImageView?因为我只是通过 xml 中的 id 获取正常的 ImageView
【参考方案1】:
如果你想让 ImageView 的高度等于它的宽度,
以编程方式[动态方式]:
int widthOfImage = image_view.getLayoutParams().width;
image_view.getLayoutParams().height = widthOfImage ;
参考this answer
你可以用硬编码的方式:
<ImageView
android:layout_
android:layout_
android:src="@drawable/ic_launcher_background"/>
或者你可以像这样定义背景image_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#003778" />
<corners android:radius="6dp" />
<size android:
android:/>
</shape>
并将其添加为 imageView 中的背景。 [记住它也是硬编码的]
【讨论】:
硬编码对我来说并不好(对不起,我没有提到) 我添加了动态方式。检查一下【参考方案2】:您必须在 xml 文件中使用此自定义视图。
例子
<YourPackageName.SquareImageView
android:id="@+id/squareImageview"
android:layout_
android:layout_
android:src="@drawable/ic_launcher_background"/>
现在你必须在你的代码中绑定这个视图。喜欢 Fragment 或 Activity,无论你用过什么。
示例(这是 java 中的代码,您可以在 kotlin 中更改它):-
SquareImageView imageView = findViewById(R.id.squareImageview);
【讨论】:
以上是关于Android 如何让组件的高度等于宽度的主要内容,如果未能解决你的问题,请参考以下文章