在我的应用程序中使用按钮创建日历..除了屏幕分辨率为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
的设备
分辨率为240 X 320的设备的快照为......
所以通过看到这个你知道问题...请建议我..
答案 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;