web-dev-qa-db-ja.com

Androidレスポンシブレイアウト

アプリケーション(電卓)を構築しています。内部にボタンがあるテーブルレイアウトを使用します。 Samsung Galaxy IIの画面では完璧に見えますが、大きな画面では非常に見栄えが悪くなります。ボタンの高さは非常に小さいです。大きな画面でボタンを拡大するにはどうすればよいですか?

レイアウトXMLは次のとおりです。

<ScrollView xmlns:Android="http://schemas.an
    xmlns:tools="http://schemas.Android.com/
    Android:layout_width="match_parent"     
    Android:layout_height="match_parent"    
    Android:gravity="right"                 
    Android:paddingBottom="@dimen/activity_v
    Android:paddingLeft="@dimen/activity_hor
    Android:paddingRight="@dimen/activity_ho
    Android:paddingTop="@dimen/activity_vert
    tools:context=".MainActivity" >         


<TableLayout                                
    Android:layout_width="match_parent"     
    Android:layout_height="match_parent"    
    Android:gravity="right"                 
    >                                       



    <TableRow                               
        Android:id="@+id/tableRow1"         
        Android:layout_width="match_parent" 
        Android:layout_height="0dp">        

        <Button                             
            Android:id="@+id/Button01"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.33"    
            Android:layout_height="fill_pare
            Android:text="@string/button_1" 
            Android:visibility="visible" /> 

        <Button                             
            Android:id="@+id/Button02"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.34"    
            Android:layout_height="fill_pare
            Android:text="@string/button_2" 

        <Button                             
            Android:id="@+id/Button03"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.33"    
            Android:layout_height="fill_pare
            Android:text="@string/button_3" 

    </TableRow>                             

    <TableRow                               
        Android:id="@+id/tableRow2"         
        Android:layout_width="match_parent" 
        Android:layout_height="0dp" >       

    <Button                                 
        Android:id="@+id/Button04"          
        Android:layout_width="0dp"          
            Android:layout_weight="0.33"    
        Android:layout_height="fill_parent" 
        Android:text="@string/button_4" />  

    <Button                                 
        Android:id="@+id/Button05"          
        Android:layout_width="0dp"          
        Android:layout_weight="0.34"        
        Android:layout_height="fill_parent" 
        Android:text="@string/button_5" />  

    <Button                                 
        Android:id="@+id/Button06"          
        Android:layout_width="0dp"          
        Android:layout_weight="0.33"        
        Android:layout_height="fill_parent" 
        Android:text="@string/button_6" />  

     </TableRow>                            

    <TableRow                               
        Android:id="@+id/tableRow3"         
        Android:layout_width="match_parent" 
        Android:layout_height="0dp" >       

        <Button                             
            Android:id="@+id/Button07"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.33"    
            Android:layout_height="fill_pare
            Android:text="@string/button_7" 

        <Button                             
            Android:id="@+id/Button08"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.34"    
            Android:layout_height="fill_pare
            Android:text="@string/button_8" 

        <Button                             
            Android:id="@+id/Button09"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.33"    
            Android:layout_height="fill_pare
            Android:text="@string/button_9" 

    </TableRow>                             

    <TableRow                               
        Android:id="@+id/tableRow4"         
        Android:layout_width="match_parent" 
        Android:layout_height="0dp" >       

        <Button                             
            Android:id="@+id/ButtonUndo"    
            Android:layout_width="0dp"      
            Android:layout_weight="0.33"    
            Android:layout_height="fill_pare
            Android:text="@string/button_und

        <Button                             
            Android:id="@+id/Button00"      
            Android:layout_width="0dp"      
            Android:layout_weight="0.34"    
            Android:layout_height="fill_pare
            Android:text="@string/button_0" 

        <Button                             
            Android:id="@+id/ButtonCheck"   
            Android:layout_width="0dp"      
            Android:layout_weight="0.33"    
            Android:layout_height="fill_pare
            Android:text="@string/button_che

    </TableRow>                             

    <TableRow                               
        Android:id="@+id/ResTable"          
        Android:layout_width="match_parent" 
        Android:layout_height="0dp" >       

        <TableLayout                        
            Android:layout_weight="0.3"     
            Android:id="@+id/table_score_cor

            <TableRow                           
                Android:id="@+id/tableRow5_11"  
                Android:layout_width="wrap_conte
                Android:layout_height="fill_pare
                Android:gravity="center_vertical
                    <TextView                     
                    Android:id="@+id/labelCorrec
                    Android:layout_width="wrap_c
                    Android:layout_height="fill_
                    Android:ems="4"             
                    Android:text="@string/correc
                    Android:gravity="center_vertic
                    Android:textSize="15sp" />    
                </TableRow>                   

            <TableRow                           
                Android:id="@+id/tableRow5_12"  
                Android:layout_width="wrap_conte
                Android:layout_height="0dp" >   

                <TextView                     
                    Android:id="@+id/scoreCorr
                    Android:layout_width="0dp"
                    Android:layout_height="fil
                    Android:ems="4"           
                    Android:gravity="center_ve
                    Android:text=""           
                    Android:textSize="30sp"   
                    Android:textStyle="bold" /
            </TableRow>                     
        </TableLayout>                      

        <ImageView                            
            Android:id="@+id/imageView1"      
            Android:layout_width="wrap_content
            Android:layout_height="fill_parent
            Android:layout_weight="0.3"       
            Android:contentDescription="@strin
            Android:fitsSystemWindows="true"  
            Android:scaleType="fitCenter"     
            Android:src="@drawable/trees" />  

        <TableLayout                        
            Android:id="@+id/table_score_inc
            Android:layout_weight="0.3">      

            <TableRow                       
                Android:id="@+id/tableRow5_21"  
                Android:layout_width="wrap_conte
                Android:layout_height="fill_pare
                Android:gravity="center_vertical
                <TextView                     
                    Android:id="@+id/labelIncorrec
                    Android:layout_width="wrap_con
                    Android:layout_height="fill_pa
                    Android:ems="4"             
                    Android:text="@string/incorrec
                    Android:gravity="center_vertic
                    Android:textSize="15sp" />    
            </TableRow>                       
            <TableRow                           
                Android:id="@+id/tableRow5_22"  
                Android:layout_width="wrap_conte
                Android:layout_height="fill_pare

                <TextView                     
                    Android:id="@+id/scoreInco
                    Android:layout_width="0dp"
                    Android:layout_height="fil
                    Android:ems="4"           
                    Android:gravity="center_ve
                    Android:text=""           
                    Android:textSize="30sp"   
                    Android:textStyle="bold" /
            </TableRow>                       
        </TableLayout>                        

        </TableRow>                           

        <TableRow                             
            Android:id="@+id/tableRow_menu"   
            Android:layout_width="wrap_content
            Android:layout_height="fill_parent
            <Button                             
                Android:id="@+id/ButtonPlus"    
                Android:layout_width="0dp"    
                Android:layout_height="38dp"
                Android:layout_weight="0.25"  
                Android:text="@string/action_p
            <Button                             
                Android:id="@+id/ButtonMinus"   
                Android:layout_width="0dp"    
                Android:layout_height="38dp"
                Android:layout_weight="0.25"  
                Android:text="@string/action_m
            <Button                             
                Android:id="@+id/ButtonMult"    
                Android:layout_width="0dp"    
                Android:layout_height="38dp"
                Android:layout_weight="0.25"  
                Android:text="@string/action_m
                        <Button                     
                Android:id="@+id/ButtonDivide"  
                Android:layout_width="0dp"    
                Android:layout_height="38dp"
                Android:layout_weight="0.25"  
                Android:text="@string/action_d
            </TableRow>                         

            </TableLayout>                      

</ScrollView>                               
14
Jacob

何よりも、すべての画面をサポートするには、さまざまなレイアウト/ドローアブルを作成する必要があります。たとえば、2つのボタンを小さな画面に、4つのボタンを大きな画面に含める場合など、要件によって異なります。その場合は、異なるレイアウトを作成する必要があります。

すべての画面に同じ数のボタンを表示する場合は、画像/描画可能オブジェクトの異なるセットを準備し、それらをプロジェクトに含めることをお勧めします。ここでは、特定のドローアブルフォルダーに画像を配置する以外に何もする必要はありません。

もう1つ、プレーンな背景の場合は、9-patch画像を作成して、必要なサイズまたはデバイスがサポートするサイズに拡大できるようにします。

その他の研究:

  1. http://developer.Android.com/guide/practices/screens_support.html
  2. さまざまな画面サイズのサポート
  3. 異なる密度のサポート
  4. アダプティブUIフローの実装
12
Paresh Mayani

このドキュメントを読むことをお勧めします http://developer.Android.com/guide/practices/screens_support.html

またはこの記事「複数画面の設計」 http://developer.Android.com/training/multiscreen/index.html

4
M D