我有一段Android代码:
final int[] finalWidth = new int[1];
final ImageView iv = (ImageView)findViewById(R.id.imageView);
textView = (TextView)findViewById(R.id.textView);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
iv.getViewTreeObserver().removeOnPreDrawListener(this);
finalWidth[0] = iv.getMeasuredWidth();
textView.setText(Integer.toString(finalWidth[0]));
return true;
}
});
imageView = (ImageView)findViewById(R.id.imageView);
imageView.getLayoutParam().height = 1.6*finalWidth[0];
但是,在构建应用程序后,ImageView是不可见的。帮我 !谢谢!
答案 0 :(得分:0)
假设gifImageView
是你的imageView。
gifImageView.post(new Runnable() {
@Override
public void run() {
int __w = gifImageView.getWidth();
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(__w, (int)(1.6 * __w)); // Since you can not apply float height
gifImageView.setLayoutParams(params);
gifImageView.invalidate();
}
});
希望这有帮助。