首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓ImageView缩放冲突

安卓ImageView缩放冲突
EN

Stack Overflow用户
提问于 2015-02-11 20:25:56
回答 1查看 95关注 0票数 4

我正在用代码创建ImageView

代码语言:javascript
复制
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);

通过将图像对齐到先前创建的TOP视图的BOTTOM和tv_visitor视图(已经添加到相对布局中),图像将被“缩放”。但我认为它还没有铺好。就在这段代码之前,.requestLayout并没有改变任何事情。

通过这样做,我将ImageView的高度设置为tv_visitor视图的高度。这也没问题。然而,宽度似乎保持原创性。

问题来了。宽度保持不缩放。我这样做是让.setAdjustViewBounds(true); 不起作用。,那么我该怎么做呢?

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

代码语言:javascript
复制
<?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>

视图作为参数传递,布局由以下方法获得:

代码语言:javascript
复制
RelativeLayout rl = (RelativeLayout) v.findViewById(R.id.fragment_news2);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 22:04:51

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

计算一个标度,这将保持原来的src纵横比,但也将确保src完全符合dst。至少有一个轴(X或Y)将完全适合。结果集中在dst中。

由于图像是调整大小和居中的,您将看到左侧和右侧都有额外的空间。为了避免将ScaleType设置为ImageView.ScaleType.FIT_END,而ImageView.ScaleType.FIT_END又将结果与右边对齐,这将解决问题。

代码语言:javascript
复制
vlogo.setScaleType(ImageView.ScaleType.FIT_END);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28463824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档