屏幕尺寸问题

时间:2011-07-27 10:54:09

标签: android

在我的应用程序中使用按钮创建日历..除了屏幕分辨率为240X320的设备外,所有分辨率都能正常工作。实际上它运行但有些部分不可见..我已发送代码和屏幕截图..请任何人帮我解决这个问题..

xml的代码......

    <?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>

java的代码......

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 X 400

的设备

enter image description here

分辨率为240 X 320的设备的快照为......

enter image description here

所以通过看到这个你知道问题...请建议我..

2 个答案:

答案 0 :(得分:1)

使用较小的图标或类似的

为此分辨率创建另一个xml布局文件

“默认情况下,Android调整应用程序布局大小以适应当前设备屏幕。在大多数情况下,这样可以正常工作。在其他情况下,您的UI可能看起来不太好,可能需要针对不同的屏幕尺寸进行调整。例如,在较大的屏幕上,您可能需要调整某些元素的位置和大小以利用额外的屏幕空间,或者在较小的屏幕上,您可能需要调整大小以使所有内容都适合屏幕。

可用于提供特定于大小的资源的配置限定符是small,normal,large和xlarge。例如,超大屏幕的布局应该在layout-xlarge /中。 “

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

答案 1 :(得分:0)

以编程方式完成项目,使用显示指标来获取宽度和高度 $ DisplayMetrics metrics; metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); screenWidth = metrics.widthPixels; screenHeight = metrics.heightPixels;