本文介绍了缩放后getWidth不返回不同的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试查找使用setScaleX时缺少的内容.
I'm trying to find what I'm missing when using setScaleX.
final ImageView iv = (ImageView) findViewById(R.id.imageView);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Start at 60
Log.d("test", "Before"+String.valueOf(iv.getWidth()));
iv.setScaleX((float) .5);
// Still at 60 after scale
Log.d("test", "After"+String.valueOf(iv.getWidth()));
}
});
我认为宽度将变为30.缩放后如何获得宽度的值?
I would of thought the width would have become 30. How do I get the value of the width after scaling?
推荐答案
您可以将其乘以scale x or y
final ImageView iv = (ImageView) findViewById(R.id.imageView);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Start at 60
Log.d("test", "Before"+String.valueOf(iv.getWidth()* iv.getScaleX()));
iv.setScaleX((float) .5);
// Still at 60 after scale
Log.d("test", "After"+String.valueOf(iv.getWidth()* iv.getScaleX()));
}
});
这篇关于缩放后getWidth不返回不同的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!