2011-07-25 28 views
0

実際には、私はボタンの配列を作成しました、今、私の質問は、それがすべての画面解像度に収まるかどうかです。私は使用するネクサスのデバイスを持っているので、すべてのボタンが完全な順序で配置されていることを確認してください。さらに、各ボタンに背景画像を配置すると、その作業は正常に行われます。これは、私が書いたコードで安価なデバイスで動作するか、 that.thats私は幅、それは0を返すのボタンの高さを見つけるためにしようとすると、それはすべての画面に合うかどうかを意味しresolution..or私が書かれているnot..theコードが..です画面解像度

  LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout); 
      LinearLayout rowLayout=null; 

      LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT,1); 

      //Create Button 
      for (i = 0; i<6; i++){ 
       rowLayout = new LinearLayout(this); 
       rowLayout.setWeightSum(7); 
       layoutVertical.addView(rowLayout,param); 

       for(j=0;j<7;j++){ 
        pBtnDay[i][j]=new Button(this); 

        rowLayout.addView(pBtnDay[i][j],param); 

        pBtnDay[i][j].setOnLongClickListener(this);       
        pBtnDay[i][j].setOnClickListener(this); 



       } 
      } 
      return true; 

もう一つ。 。なぜ?

答えて

1

weightSumは、複数のデバイス間で、画面に表示する要素数を正確に把握するのに最適なソリューションです。したがって、HTC Wildfire(LDPI)が表示される場合は、HTC Wildfire(HDPI)にも表示されます。

2番目の質問では、これらの値を取得するためにView.getHeight()とView.getWidth()を使用していると仮定しています。あなたのボタンは実際にまだ描画されていないので、Androidは寸法値を指定していないので、0になります。これらのボタンの幅と高さがonCreateで必要な場合は、第二の答えのために

1

Adnroidアプリケーションの基本理念の1つは、さまざまな画面解像度、ピクセルの深さ、および色調を持つプラットフォーム間の移植性です。

これを達成する方法は、thisリンクでよく説明されています。楽しい!

Screen Parametersを取得したい場合は、DisplayMetricsとWindow Managerを使用できます。 Shash

1

:)あなた自身:あなたはボタンのディメンション値が必要な場合は、使用します。実際には

@Override 
    public void onWindowFocusChanged(boolean hasFocus) 
    { 
     if (hasFocus) 
     { 
// calculates dimesions 
     } 
    } 

を、前に話したように、のonCreateであなたはまだそれらを計算していません。

+0

これは正しく、onWindowsFocusChangedが発生したときにAndroidがビューの寸法を引き出したときです。 –