2011-06-27 7 views
0

ビューの一部が画面に表示されない場合は検出できますか?ビューの一部が表示されていないかどうかを検出しますか?

これは、ビューの幅/高さが親の幅/高さよりも大きい場合に使用されます。

EDIT

は、私は、ビューの高さは0です。誰もが知っている理由はないことを得ますか?私はonCreateに高さを取ります。

LinearLayout lin = (LinearLayout) findViewById(R.id.linear_layout); 
final int layoutHeight = lin.getHeight(); 
Toast.makeText(this,"LinLay height: "+layoutHeight,Toast.LENGTH_SHORT).show(); 
... 
     button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       int displayTextWidth = textView.getWidth(); 

       if (displayTextWidth <= layoutHeight) { 
        textView.setTextSize(textView.getTextSize() + 1); 
       } 
      } 
     }); 
+1

高さのonCreateで0です。もっと読む:http://stackoverflow.com/questions/3779173/determining-the-size-of-an-android-view-at-runtime –

答えて

2

あなたは、これらの手段によって、デバイスの寸法を取得し、View.getWidth()View.getHeight()を呼び出すことにより、ビューの幅と高さを得ることができる。次に、2つを比較How do I get a device's maximal width and height in android

を、ビューの境界には、お使いのデバイスのより大きい場合ビューの一部は表示されません。コメントに応えて

:それはまだ描かれていなかったため

textView.post(new Runnable() { 

    @Override 
    public void run() { 

     int displayTextWidth = textView.getWidth(); 

     // Code that uses width here... 
    } 
}); 
+0

onCreateでビューの高さを測定すると、ビューの高さが質問を編集してレビュー用のコードを追加します。 – sandalone

+1

は 'textView.post(Runnable)'を使い、その 'Runnable'の内部で高さを取得します。トリックをする必要があります。 –

+0

'Button.setOnClickListener'の中で' Runnable'を使うべきでしょうか? – sandalone

関連する問題