2012-04-02 68 views
1

我有一个相对布局里面的imageView。当我创建活动时,我运行线程来从互联网抓图位图并设置imageView。如何设置基于其父视图大小的ImageView可绘制大小?

我想要的是调整该位图是按比例的基于相对视图尺寸,同时保持高宽比。用于调整图像的代码工作,但我做的是我通过调用myRelativeView.getWidth() & myRelativeView.getHeight()获得相关视图的大小,我觉得我不应该这样做,因为文档说,这可能返回0。那么,什么是检索的最佳方式在这种情况下相对视图的大小?

+0

是整个屏幕的相对布局还是严格的比例? – jersam515 2012-04-02 21:56:00

+0

不,在viewGroup中有一个操作栏和另一个相对布局。 – Jimmy 2012-04-02 21:58:20

+0

对,但它们是否与屏幕成比例?如果是的话,请看下面的答案。 – jersam515 2012-04-02 21:59:06

回答

1

FIX您的要求:]

如果你不想改变大小 设置您的ImageView scaleType以“矩阵”

,如果你想改变大小,但保持纵横比 设置您的ImageView scaleType为 “fitCenter”(或fitStart fitEnd)

要代码

ImageView image; 

image = (ImageView)findViewById(R.id.yourImageView1); 

image.setScaleType(ImageView.ScaleType.FIT_CENTER); 

更改为常e in XML 示例

<ImageView 
    android:layout_width="match_parent" 
    android:layout_width="match_parent" 
    android:scaleType="fitCenter" 
    android:src="ic_launcher"/> 
+0

+1。 fitCenter应缩放图像以适应并保持纵横比。 – 2012-04-02 22:14:10

+0

但在这里它也横跨绘制,查看size..is有什么办法来设置绘制不跨越呢? – CoDe 2013-10-10 08:41:37

0

如果布局与整个屏幕的比例,你可以尝试:

Display display = getWindowManager().getDefaultDisplay(); 
     width = display.getWidth() 

// *比例;或-dp; 高度= display.getHeight() // * proportion2;或-dp;

+0

布局未采用整个屏幕。有一个操作栏和另一个相对布局。 – Jimmy 2012-04-02 21:59:28

+0

我知道比例的意思是高度的3/5和宽度的3/5。 – jersam515 2012-04-02 22:00:10

+0

不,还有其他使用dp测量的布局。 – Jimmy 2012-04-02 22:01:21

相关问题