2011-07-27 61 views
0

在我的應用程序創建使用按鈕的日曆..它在所有分辨率下工作正常,除了屏幕分辨率爲240X320的設備。實際上它運行但有些部分是不可見的..我發送代碼和屏幕shot..please誰能幫我解決這個問題。對於XML屏幕尺寸問題

...代碼的Java

<?xml version="1.0" encoding="UTF-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
     <LinearLayout android:id="@+id/linearLayout" 
      android:gravity="center_horizontal|center_vertical" 
      android:orientation="horizontal" 
      android:layout_marginLeft="30dp" 
      android:layout_marginRight="30dp" 
      android:layout_marginTop="20dp" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"  
      android:background="#00000000"> 
      <Button 
      android:id="@+id/pBtnPrevMonth" 
      android:gravity="center_horizontal|center_vertical" 
      android:layout_width="53dp" 
      android:layout_height="40dp" 
      android:textColor="#000000" 
      android:background="@drawable/but_left"> 
      </Button> 
      <TextView 
      android:gravity="center_horizontal|center_vertical" 
      android:id="@+id/tTextMonth"   
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/pBtnPrevMonth" 
      android:textColor="#000000"> 
      </TextView> 
      <TextView 
      android:gravity="center_horizontal|center_vertical" 
      android:id="@+id/tTextYear" 
      android:layout_width="50dp" 
      android:layout_marginRight="5dp" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/tTextMonth" 
      android:textColor="#000000"> 
      </TextView> 
      <Button 
      android:id="@+id/pBtnNextMonth" 
      android:gravity="center_horizontal|center_vertical" 
      android:layout_width="53dp" 
      android:layout_height="40dp" 
      android:layout_toRightOf="@+id/tTextYear" 
      android:textColor="#000000" 
      android:background="@drawable/but_right"> 
      </Button> 
    </LinearLayout> 

    <LinearLayout 
      android:id="@+id/liVLayout" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/linearLayout" 
      android:layout_marginTop="15dp">    
    </LinearLayout> 

    <LinearLayout android:id="@+id/linearLayout1" 
      android:gravity="center_horizontal|center_vertical" 
      android:orientation="vertical" 
      android:layout_marginLeft="7dp" 
      android:layout_marginRight="7dp"  
      android:layout_below="@+id/liVLayout" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"  
      android:background="#00000000"> 
      <TextView 
      android:gravity="center_vertical" 
      android:text="Hello" 
      android:layout_marginTop="5dp" 
      android:id="@+id/txtView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000"> 
      </TextView> 
      <TextView 
      android:gravity="center_vertical" 
      android:id="@+id/txtNoteView" 
      android:layout_marginTop="5dp" 
      android:layout_below="@+id/txtView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000"> 
      </TextView> 
      <TextView 
      android:gravity="center_horizontal|center_vertical" 
      android:text="Advertisement" 
      android:layout_marginTop="5dp" 
      android:id="@+id/txtAdvView" 
      android:layout_below="@+id/txtNoteView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000"> 
      </TextView> 
    </LinearLayout> 

</RelativeLayout> 

代碼......

public void onCreate(Bundle savedInstanceState){ 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.calendar_frm); 

     txtView=(TextView) findViewById(R.id.txtView); 

      txtNoteView=(TextView) findViewById(R.id.txtNoteView); 

      txtAdvView=(TextView) findViewById(R.id.txtAdvView); 
} 

public boolean initDay() 
{ 
    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].setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 

    } 
}    
return true;      

}

快照,其具有器件分辨率爲240×400

enter image description here

快照具有分辨率爲240×320的設備...

enter image description here

所以通過看這個,你知道的問題...請建議我..

回答

1

爲此分辨率創建另一個xml佈局文件,使用較小的圖標或諸如此類

「默認情況下,Android調整您的應用程序佈局以適合當前設備屏幕。在大多數情況下,這工作正常。在其他情況下,您的用戶界面可能看起來不太好,可能需要針對不同的屏幕尺寸進行調整。例如,在較大的屏幕上,您可能需要調整某些元素的位置和大小以利用額外的屏幕空間,或者在較小的屏幕上,可能需要調整大小以使所有內容都可以放在屏幕上。

您可以用來提供特定大小的資源的配置限定符是small,normal,large和xlarge。例如,超大屏幕的佈局應該放在layout-xlarge /中。 「

http://developer.android.com/guide/practices/screens_support.html#support

+0

任何其他方式做到這一點.. – AndroidDev

+1

沒有改變原來的佈局(即,使它在所有屏幕上都較小) –

0

完成你的項目編程使用顯示指標得到寬度和高度 $ DisplayMetrics metrics; metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); screenWidth = metrics.widthPixels; screenHeight = metrics.heightPixels;