2017-06-03 259 views
1

我想根據用戶的屏幕設備大小動態調整我的圖像按鈕大小。根據屏幕設備大小調整圖像按鈕大小

我已經知道LinearLayout,並對每個圖像按鈕加權。 但後來我的設計是有點不同

這裏是我的設計: https://ibb.co/cudSCa

*有這個動畫中,中間的按鈕將淡入然後其他按鈕將在中間按鈕問世 *

下面是XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@drawable/bgf" 
    tools:context="com.example.kixkikx.basewalk.AdminMenu"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"> 

    <ImageView 
     android:id="@+id/imageView6" 
     android:layout_width="180dp" 
     android:layout_height="180dp" 
     android:layout_marginTop="180dp" 

     android:layout_marginLeft="70dp" 
     app:srcCompat="@drawable/finalogo" /> 

    <ImageButton 
     android:id="@+id/button19" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_marginLeft="130dp" 
     android:layout_marginTop="450dp" 
     android:onClick="Timeline" 

     android:background="@drawable/timeline1" /> 

    <ImageButton 
     android:id="@+id/button7" 
     android:layout_width="60dp" 

     android:layout_height="60dp" 
     android:layout_marginLeft="140dp" 
     android:layout_marginTop="20dp" 
     android:background="@drawable/create1" 
     android:onClick="CreateDF" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="135dp" 
     android:layout_marginTop="80dp" 

     android:text="Add forum" 
     android:textColor="#F3D42C" /> 

    <ImageButton 
     android:id="@+id/button5" 

     android:layout_width="50dp" 
     android:layout_height="60dp" 
     android:layout_marginLeft="253dp" 
     android:layout_marginTop="90dp" 
     android:onClick="AssignTask" 
     android:background="@drawable/assign1" /> 

    <TextView 
     android:id="@+id/textView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="230dp" 
     android:layout_marginTop="150dp" 

     android:text=" Assign Task" 
     android:textColor="#F3D42C" /> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TEST" 
     android:textSize="16sp" 
     android:textColor="#984491" 
     android:visibility="invisible" 
     android:id="@+id/textView4" 
     android:layout_marginBottom="30dp" 
     android:layout_marginRight="50dp" 
     android:layout_marginTop="150dp" 
     android:layout_marginLeft="50dp" /> 

    <ImageButton 
     android:id="@+id/button8" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_marginLeft="30dp" 
     android:layout_marginTop="90dp" 
     android:background="@drawable/forum1" 
     android:onClick="ViewManager" 
     android:text="Log History" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:layout_marginTop="150dp" 
     android:text="View Forum" 
     android:textColor="#F3D42C" 
     /> 

    <TextView 
     android:id="@+id/textView99" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="120dp" 
     android:layout_marginTop="495dp" 

     android:text="View timeline" 
     android:textColor="#F3D42C" /> 

    <ImageButton 
     android:id="@+id/button6" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:onClick="ViewTask" 
     android:layout_marginLeft="30dp" 
     android:layout_marginTop="350dp" 
     android:background="@drawable/report1" 
    /> 

    <TextView 
     android:id="@+id/textView22" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="410dp" 
     android:layout_marginLeft="13dp" 

     android:textColor="#F3D42C" 
     android:text="View Task Reports" /> 


    <ImageButton 
     android:id="@+id/button10" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 

     android:layout_marginTop="350dp" 
     android:layout_marginLeft="230dp" 
     android:background="@drawable/logout1" /> 

    <TextView 
     android:id="@+id/textView23" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="410dp" 
     android:layout_marginLeft="240dp" 

     android:textColor="#F3D42C" 
     android:text="Log out" /> 

</RelativeLayout> 
</RelativeLayout> 

我PROBL時間是:我不知道如何使這些圖像按鈕成爲一個動態的地方,它將根據設備/手機的屏幕尺寸調整它的大小,同時保持我創建的設計。 imagebutton中的所有圖像都有hdpi/xhdpi/xxhdpi。我使用圖像資源生成了這些圖標。

我也想包括爲每個圖像按鈕分配textView。

+0

檢查我的答案。我希望它能幫助你。 –

回答

0

buttons.xml

試試這個佈局:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/activity_signup" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:orientation="vertical"> 


    <RelativeLayout 
     android:id="@+id/main_layout_signup" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentStart="true"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:gravity="center_vertical"> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal|center_vertical" 
       android:orientation="vertical"> 

       <ImageButton 
        android:id="@+id/button7" 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:layout_marginTop="10dp" 
        android:onClick="CreateDF" /> 


       <TextView 
        android:id="@+id/textView7" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Add forum" 
        android:textColor="#F3D42C" /> 


      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="30dp" 
        android:gravity="left" 
        android:orientation="vertical"> 

        <ImageButton 
         android:id="@+id/button6" 
         android:layout_width="60dp" 
         android:layout_height="60dp" 
         android:onClick="CreateDF" /> 


        <TextView 
         android:id="@+id/textView6" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Add forum" 
         android:textColor="#F3D42C" /> 


       </LinearLayout> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginRight="30dp" 
        android:gravity="right" 
        android:orientation="vertical"> 

        <ImageButton 
         android:id="@+id/button5" 
         android:layout_width="60dp" 
         android:layout_height="60dp" 
         android:onClick="CreateDF" /> 


        <TextView 
         android:id="@+id/textView5" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Add forum" 
         android:textColor="#F3D42C" /> 


       </LinearLayout> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:layout_marginTop="10dp"> 

       <ImageView 
        android:id="@+id/imageView6" 
        android:layout_width="100dp" 
        android:layout_height="100dp" 
        android:foregroundGravity="center_horizontal" 
        android:scaleType="centerCrop" 
        android:src="@drawable/brushed_radiant_blue" /> 
      </LinearLayout> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="30dp" 
        android:gravity="left" 
        android:orientation="vertical"> 

        <ImageButton 
         android:id="@+id/button4" 
         android:layout_width="60dp" 
         android:layout_height="60dp" 
         android:layout_marginTop="10dp" 
         android:onClick="CreateDF" /> 


        <TextView 
         android:id="@+id/textView4" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Add forum" 
         android:textColor="#F3D42C" /> 


       </LinearLayout> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginRight="30dp" 
        android:gravity="right" 
        android:orientation="vertical"> 

        <ImageButton 
         android:id="@+id/button3" 
         android:layout_width="60dp" 
         android:layout_height="60dp" 
         android:layout_marginTop="10dp" 
         android:onClick="CreateDF" /> 


        <TextView 
         android:id="@+id/textView3" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Add forum" 
         android:textColor="#F3D42C" /> 


       </LinearLayout> 
      </LinearLayout> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal|center_vertical" 
       android:orientation="vertical"> 

       <ImageButton 
        android:id="@+id/button1" 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:layout_marginTop="10dp" 
        android:onClick="CreateDF" /> 


       <TextView 
        android:id="@+id/textView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Add forum" 
        android:textColor="#F3D42C" /> 


      </LinearLayout> 

     </LinearLayout> 
    </RelativeLayout> 
</RelativeLayout> 
+0

屏幕1- nexus一個https://i.stack.imgur.com/u1dDT.png屏幕2 - nexus 7 https://i.stack.imgur.com/nkM1J.png –

+0

基於你給出的鏈接,是內部的圖像imagebutton會調整? – freelancsandroidplayer

+0

是的這段代碼將工作完美。只需複製粘貼並在imageButton中添加圖像即可。 –

0

請使用帶有權重的LinearLayout。

+1

嘗試解釋更多。 – jagapathi

2

問題是,你在這種情況下在寬度和高度給硬核維度圖像從hdpi xhdpi其他任何東西,但你需要定義dimen值文件夾中的每個維度值21,值小,值大一旦你設置我想你可以看到你的最好成績

+0

據我瞭解您的評論,高度和寬度將採取從每個圖像按鈕的源圖像?我如何定義每個維度值? – freelancsandroidplayer

+0

訪問此: - https://stackoverflow.com/questions/32860815/how-to-define-dimens-xml-for-every-different-screen-size-in-android –

+0

如果有任何問題,然後評論 –

相關問題