我有一個ImageView,我需要在Java中獲取圖像寬度和高度,並將它們存儲在一些變量中,並根據需要使用它一些次,但是當我想保存高度和寬度值時,它會將NULL值返回給消息字符串。如何從匿名內部類獲取價值?
我創造了一些外界方法,並傳遞價值給它的存儲值,但它沒有工作過,同樣我創建一個文本視圖和我分配值TextView的文本,它顯示在屏幕上,但是當我用getText()
對於GET文本它獲得文本視圖的默認文本,看看,沒有任何方式從內部類獲取價值,有什麼辦法從匿名內部類獲取價值?
final String[] message = new String[2];
final ImageView iv = (ImageView)findViewById(R.id.main_item2);
final TextView tv = (TextView)findViewById(R.id.storePostions);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
iv.getViewTreeObserver().removeOnPreDrawListener(this);
int finalHeight, finalWidth;
finalHeight = iv.getMeasuredHeight();
finalWidth = iv.getMeasuredWidth();
message[0] = String.valueOf(finalHeight);
message[1] = String.valueOf(finalWidth);
return true;
}
});
Toast.makeText(MainActivity.this, "finalHeight = " + message[0] + " ,finalWidth = " + message[1], Toast.LENGTH_LONG).show();
// show "finalHeight = NULL ,finalWidth = NULL"
謝謝,那麼如何運行onPreDraw(),然後運行Toast方法? – MojtabaSh
@MojtabaSh我編輯了一些建議。 – Douglas