2011-07-27 2 views
0

В моем приложении, которое создает календарь с помощью кнопок .. работает отлично во всех разрешениях, кроме устройства с разрешением экрана 240X320..На самом деле он работает, но некоторая часть не видна..и отправили код и экран shot..please кто поможет мне решить эту проблему ..Проблема с размером экрана

код 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

Snapshot для устройства, имеющего разрешение 240 X 320 является ...

enter image description here

так, видя это, вы знаете, проблема ... просьба предложить мне ..

ответ

1

создать другой файл макета xml для этого разрешения с меньшими значками или например

«По умолчанию Android изменяет размер вашего приложения, чтобы он соответствовал текущему экрану устройства. В большинстве случаев это прекрасно работает. В других случаях ваш пользовательский интерфейс может выглядеть не так хорошо и может потребоваться корректировка для разных размеров экрана. Например, на большом экране вы можете настроить положение и размер некоторых элементов, чтобы воспользоваться дополнительным пространством экрана или на меньшем экране, вам может потребоваться отрегулировать размеры, чтобы все могло поместиться на экране.

Квалификаторы конфигурации, которые вы можете использовать для предоставления ресурсов по размеру, являются маленькими, нормальными, большими и большими. Например, макеты для особо большого экрана должны идти в layout-xlarge /. "

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

+0

Любой другой способ сделать это .. – AndroidDev

+1

не без изменения исходного макета (то есть, сделать его меньше на всех экранах) –

0

Done ваш проект программно использовать показатели дисплея, чтобы получить ширину и высоту $ DisplayMetrics metrics; metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); screenWidth = metrics.widthPixels; screenHeight = metrics.heightPixels;

Смежные вопросы