java - 自动调整按钮大小到屏幕大小?

标签 java android xml menu

我是 android 开发的新手,我正在尝试使用网格菜单创建和应用程序, Menu.

我试图让它们根据屏幕尺寸自动调整,我尝试使用 layout_weight 但那没有做任何事情。有什么建议吗?

<?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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="nl.drieo.soundwave.test.cms.MainComponents"
android:background="@drawable/background2" >

<SearchView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/searchView"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:background="#f0f0f0"
    android:layout_marginBottom="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/content"
    android:id="@+id/btContent"
    android:drawableTop="@drawable/ic_menu"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:textStyle="bold"
    android:layout_below="@+id/searchView"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btBanner"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Overzichten"
    android:id="@+id/btCollection"
    android:drawableTop="@drawable/ic_collection"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:textStyle="bold"
    android:layout_below="@+id/btContent"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btGroup"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Nieuws"
    android:id="@+id/btNewsItem"
    android:drawableTop="@drawable/ic_news"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    android:layout_below="@+id/btGroup"
    android:layout_marginBottom="10dp"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btNewsLetter"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Agenda"
    android:id="@+id/btAgendaItem"
    android:drawableTop="@drawable/ic_agenda"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:layout_below="@+id/btNewsItem"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btlabel"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/FotoAlbums"
    android:id="@+id/btPhotoAlbum"
    android:drawableTop="@drawable/ic_photoalbum"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:layout_below="@+id/btAgendaItem"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btMenuItem"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Banner"
    android:id="@+id/btBanner"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_banner"
    android:padding="10dp"
    android:textColor="#000000"
    android:textStyle="bold"
    android:layout_alignTop="@+id/btContent"
    android:layout_alignStart="@+id/btGroup"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Groepen"
    android:id="@+id/btGroup"
    android:drawableTop="@drawable/ic_group"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:textStyle="bold"
    android:layout_alignTop="@+id/btCollection"
    android:layout_alignStart="@+id/btNewsLetter"
    android:layout_marginBottom="10dp"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/NieuwsBrieven"
    android:id="@+id/btNewsLetter"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_newsletter"
    android:padding="10dp"
    android:textColor="#000000"
    android:layout_alignTop="@+id/btNewsItem"
    android:layout_alignParentEnd="true"
    android:textStyle="bold"
    android:layout_marginBottom="10dp"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Label"
    android:id="@+id/btlabel"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_label"
    android:padding="10dp"
    android:textColor="#000000"
    android:layout_alignTop="@+id/btAgendaItem"
    android:layout_alignParentEnd="true"
    android:textStyle="bold"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Menu"
    android:id="@+id/btMenuItem"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_content"
    android:padding="10dp"
    android:textColor="#000000"
    android:layout_alignTop="@+id/btPhotoAlbum"
    android:layout_alignParentEnd="true"
    android:textStyle="bold"
    android:alpha="0.65" />

我怎么觉得我必须使用 PercentRelativeLayout。

<?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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="nl.drieo.soundwave.test.cms.MainComponents"
android:background="@drawable/background2"
android:orientation="vertical">

<SearchView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/searchView"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:background="#f0f0f0"
    android:layout_marginBottom="10dp"/>
<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">

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/content"
    android:id="@+id/btContent"
    android:drawableTop="@drawable/ic_menu"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:textStyle="bold"
    android:layout_below="@+id/searchView"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btBanner"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Overzichten"
    android:id="@+id/btCollection"
    android:drawableTop="@drawable/ic_collection"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:textStyle="bold"
    android:layout_below="@+id/btContent"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btGroup"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Nieuws"
    android:id="@+id/btNewsItem"
    android:drawableTop="@drawable/ic_news"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    android:layout_below="@+id/btGroup"
    android:layout_marginBottom="10dp"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btNewsLetter"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Agenda"
    android:id="@+id/btAgendaItem"
    android:drawableTop="@drawable/ic_agenda"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:layout_below="@+id/btNewsItem"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btlabel"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/FotoAlbums"
    android:id="@+id/btPhotoAlbum"
    android:drawableTop="@drawable/ic_photoalbum"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:layout_below="@+id/btAgendaItem"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:alpha="0.65"
    android:layout_toStartOf="@+id/btMenuItem"
    android:layout_marginRight="10dp"/>

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Banner"
    android:id="@+id/btBanner"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_banner"
    android:padding="10dp"
    android:textColor="#000000"
    android:textStyle="bold"
    android:layout_alignTop="@+id/btContent"
    android:layout_alignStart="@+id/btGroup"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Groepen"
    android:id="@+id/btGroup"
    android:drawableTop="@drawable/ic_group"
    android:padding="10dp"
    android:textColor="#000000"
    android:background="#f0f0f0"
    android:textStyle="bold"
    android:layout_alignTop="@+id/btCollection"
    android:layout_alignStart="@+id/btNewsLetter"
    android:layout_marginBottom="10dp"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/NieuwsBrieven"
    android:id="@+id/btNewsLetter"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_newsletter"
    android:padding="10dp"
    android:textColor="#000000"
    android:layout_alignTop="@+id/btNewsItem"
    android:layout_alignParentEnd="true"
    android:textStyle="bold"
    android:layout_marginBottom="10dp"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Label"
    android:id="@+id/btlabel"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_label"
    android:padding="10dp"
    android:textColor="#000000"
    android:layout_alignTop="@+id/btAgendaItem"
    android:layout_alignParentEnd="true"
    android:textStyle="bold"
    android:alpha="0.65" />

<Button
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:text="@string/Menu"
    android:id="@+id/btMenuItem"
    android:background="#f0f0f0"
    android:drawableTop="@drawable/ic_content"
    android:padding="10dp"
    android:textColor="#000000"
    android:layout_alignTop="@+id/btPhotoAlbum"
    android:layout_alignParentEnd="true"
    android:textStyle="bold"
    android:alpha="0.65" />
</android.support.percent.PercentRelativeLayout>

当前依赖: 编译文件树(目录:'libs',包括:['*.jar']) testCompile 'junit:junit:4.12' 编译组:'org.apache.httpcomponents',名称:'httpclient-android',版本:'4.3.5.1' 编译组:'cz.msebera.android',名称:'httpclient',版本:'4.4.1.1' 编译 'com.android.support:appcompat-v7:23.2.0' 编译 'com.android.support:design:23.2.0' 编译 'com.android.support:support-v4:23.2.0' 编译 'com.android.support:percent:23.2.0'

最佳答案

您可以将 LinearLayoutweightSUm 一起使用。或者你可以使用谷歌库 PercentRelativeLayout 这个库你可以按百分比设置你的 View 的 weightheigh 这很棒,因为在所有屏幕上它们看起来一样,当然编码也不难。这里的例子:

<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="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentRelativeLayout>

和谷歌官方文档https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html

更新

试试这样的

<?xml version="1.0" encoding="utf-8"?>
<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">

    <SearchView
        android:id="@+id/searchView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="10dp"
        android:background="#f0f0f0"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="100%"/>

    <Button
        android:id="@+id/btContent"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/searchView"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_toStartOf="@+id/btBanner"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="content"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btCollection"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btContent"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        android:layout_toStartOf="@+id/btGroup"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Overzichten"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btNewsItem"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btGroup"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        android:layout_toStartOf="@+id/btNewsLetter"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Nieuws"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btAgendaItem"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btNewsItem"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        android:layout_toStartOf="@+id/btlabel"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Agenda"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btPhotoAlbum"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btAgendaItem"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        android:layout_toStartOf="@+id/btMenuItem"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="FotoAlbums"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btBanner"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignStart="@+id/btGroup"
        android:layout_alignTop="@+id/btContent"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Banner"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btGroup"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignStart="@+id/btNewsLetter"
        android:layout_alignTop="@+id/btCollection"
        android:layout_marginBottom="10dp"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Groepen"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btNewsLetter"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentEnd="true"
        android:layout_alignTop="@+id/btNewsItem"
        android:layout_marginBottom="10dp"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="NieuwsBrieven"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btlabel"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentEnd="true"
        android:layout_alignTop="@+id/btAgendaItem"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Label"
        android:textColor="#000000"
        android:textStyle="bold"/>

    <Button
        android:id="@+id/btMenuItem"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%"
        android:layout_alignParentEnd="true"
        android:layout_alignTop="@+id/btPhotoAlbum"
        android:alpha="0.65"
        android:background="#f0f0f0"
        android:drawableTop="@drawable/ic_launcher"
        android:padding="10dp"
        android:text="Menu"
        android:textColor="#000000"
        android:textStyle="bold"/>

</android.support.percent.PercentRelativeLayout>

并将这一行添加到您的 build.gradle

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

关于java - 自动调整按钮大小到屏幕大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35917088/

相关文章:

java - ReSTLet URI 模式

android - 什么是适用于 Android 的 SceneKit?

javascript - 我如何使用javascript写入xml

xml - 在 Go 中解析 Xml Envelope Soap 的最佳方法

java - 两个通知之间的 onHandleIntent 中隐含的 Intent 不同

java - Jersey 测试框架文档不起作用

Java读取大文件java堆空间

android - 如何从Android相机获取缩略图和图像路径?

android - StoreData甚至手机重启

xml - 在 XML 中连接来自多个节点的值 - 使用 XSLT