2016-05-02 150 views
1

使用XML作爲根佈局的相對佈局,是否有辦法讓圖像視圖可以使用80%的屏幕並居中居中。顯示圖像佔80%的屏幕

如果我使用包裝內容或數字DP,那麼圖像可能在大屏幕上太小,或者在小屏幕上太大。無論屏幕是什麼樣子,我都希望它是80‰。

請讓我知道你會如何處理這得益於

回答

1

您使用PercentRelativeLayout,導入此

dependencies { 
    ... 
    compile 'com.android.support:percent:23.3.0' 
    ... 
} 

在XML中,您使用<android.support.percent.PercentRelativeLayout>代替<RelativeLayout>,它將支持下面的代碼對那些孩子

app:layout_heightPercent="80%" 
app:layout_widthPercent="80%" 

使用android:layout_width/height,你可以使用「wrap_content」,或者不使用,沒問題。

+0

真棒。我不知道這存在! – Snake

0

好了,你不能做這個XML導致這些數學運算不能在那裏進行。您可以在XML中使用MATCH_PARENT。

然後以編程方式獲取特定的Views MeasuredWidth(),然後將寬度設置爲80%。

這種方式更容易和更清潔。

0

您可以使用PercentRelativeLayout

<android.support.percent.PercentRelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
<ImageView 
    app:layout_widthPercent="80%" 
    app:layout_heightPercent="80%" 
    android:layout_centerInParent="true"/> 
</android.support.percent.PercentFrameLayout> 
0

您可以創建線性佈局使用重像下面

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

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

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="8" 
      android:orientation="horizontal"> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" /> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="8"> 

       <ImageButton 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

    </LinearLayout> 
</RelativeLayout>