我想知道如何真正测量ImageView的一面以使其成为正方形。
例如:
我有这个ImageView
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="50"
android:background="@drawable/image"/>
我想要做的只是使用此代码获得真正的高度测量(在DP或PX中)以形成正方形:
ImageView imageView1 = (ImageView) this.findViewById(R.id.imageView1);
imageView1.getLayoutParams().width = imageView1.getHeight();
但如果我使用其中一个代码,我总是“0”:
imageView1.getHeight();
imageView1.getLayoutParams().height;
imageView1.getMeasuredHeight();
因为我将layout_height“0dp”设置为50%layout_weight。
有一种方法可以使ImageView成为方块吗?
很多人......
答案 0 :(得分:0)
使用此
imageView.measure(imageView.getMeasuredWidth(), imageView.getMeasuredHeight());
imageView.getHeight();
imageView.getWidth();
答案 1 :(得分:0)
试试这个:
public class Something extends Activity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_something);
imageView = (ImageView) findViewById(R.id.yourImage);
getDimensions();
}
private void getDimensions() {
imageView.measure(imageView.getMeasuredWidth(),
imageView.getMeasuredHeight());
int Width = getMeasuredWidth();
int Height = getMeasuredHeight();
Toast.makeText(this, "width: " + Width + " height: " + Height,
Toast.LENGTH_SHORT).show();
}
}
它适用于我,使用api 4/17,目标api 10。 结果在px。