gpt4 book ai didi

Android ImageView缩放冲突

转载 作者:太空宇宙 更新时间:2023-11-03 10:19:00 25 4
gpt4 key购买 nike

我正在用代码创建 ImageView:

ImageView vlogo = new ImageView(v.getContext());
RelativeLayout.LayoutParams vlogoParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
vlogoParams.addRule(RelativeLayout.ALIGN_TOP,tv_visitor.getId());
vlogoParams.addRule(RelativeLayout.ALIGN_LEFT, tv_visitor.getId());
vlogoParams.addRule(RelativeLayout.ALIGN_BOTTOM, tv_visitor.getId());
vlogo.setLayoutParams(vlogoParams);
vlogo.setImageResource(R.drawable.star);
rl.addView(vlogo);

通过将图像与先前创建的 tv_visitor View (已添加到相对布局)的 TOPBOTTOM 对齐来“缩放”图像。但我认为它还没有布局(?)。 .requestLayout 在此代码之前不会改变任何东西。 Picture

通过这样做,我将 ImageView 的高度设置为 tv_visitor View 的高度。没关系。但是宽度似乎保持原始状态。

问题来了。宽度保持不变。 我这样做的方法是让 .setAdjustViewBounds(true); 不起作用。那我应该如何进行?

根据评论中的要求,我提供了更多信息:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/news_scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff000000"
android:scrollbars="none">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/fragment_news2">
<View
android:id="@+id/anchor_n"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#ffbb00"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
</ScrollView>

View 作为参数传递,布局通过以下方式获取:

RelativeLayout rl = (RelativeLayout) v.findViewById(R.id.fragment_news2);

最佳答案

问题是由于 Imageview 的缩放引起的,因为默认情况下 imageview 使用 ImageView.ScaleType.FIT_CENTER .根据文档 FIT_CENTER 执行以下操作:

Compute a scale that will maintain the original src aspect ratio, but will also ensure that src fits entirely inside dst. At least one axis (X or Y) will fit exactly. The result is centered inside dst.

由于图像已调整大小并居中,您会在左侧和右侧看到额外的空间。为避免将 ScaleType 设置为 ImageView.ScaleType.FIT_END反过来将结果右对齐将解决问题。

vlogo.setScaleType(ImageView.ScaleType.FIT_END);

关于Android ImageView缩放冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com