这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.flexbox.FlexboxLayout 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"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/main_bg"
android:orientation="vertical"
app:alignContent="stretch"
app:alignItems="stretch"
app:flexWrap="wrap"
android:id="@+id/activity_main"
>
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexDirection="column"
>
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexDirection="row"
app:layout_flexBasisPercent="25%"
>
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexDirection="column"
app:layout_flexBasisPercent="50%"
>
<Button
android:id="@+id/istilldontknow"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/holo_green_dark"
android:text="istilldontknow"
android:textColor="@android:color/white"
/>
<Button
android:id="@+id/istilldontknow"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/holo_green_light"
android:text="@string/istilldontknow"
android:textColor="@android:color/white"
/>
</com.google.android.flexbox.FlexboxLayout>
<Button
android:id="@+id/istilldontknow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_orange_light"
android:text="@string/istilldontknow"
android:textColor="@android:color/white"
app:layout_flexBasisPercent="50%"
/>
</com.google.android.flexbox.FlexboxLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="10"
android:orientation="vertical"
app:layout_flexGrow="1"
>
<Button
android:id="@+id/events"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_bright"
android:text="@string/Event"
android:textColor="@android:color/white"
android:layout_weight="4"/>
<Button
android:id="@+id/checkin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_purple"
android:text="@string/checkin"
android:textColor="@android:color/white"
android:layout_weight="4"/>
<Button
android:id="@+id/podcast"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@android:color/holo_blue_dark"
android:text="Play some Music"
android:textColor="@android:color/white"
android:layout_weight="2"
/>
</LinearLayout>
</com.google.android.flexbox.FlexboxLayout>
</com.google.android.flexbox.FlexboxLayout>
正如你所看到的,我得到了一张从互联网上拍摄的背景图片,此时没什么特别的
好,现在我想让我的主屏幕看起来像这样,我在上面的xml颜色方案中定义了给定的高度和宽度: Main Activity
正如你在PS文件中看到的那样,有一个带有文本设计的TextLayer,以及一个包含具有复杂背景的按钮背景的图层(注意使用Wave-Form中的“播放一些音乐”)背景加上按钮本身的各个元素。)
到目前为止一切顺利,我首先尝试了最简单的方法,将图像导出到-png,将其放入我的Drawables中,然后将我的“android:background =”设置为按钮。这是结果: Button with Background
正如你在这里看到的那样,图像不符合我想要的方式,而且文字的尺度也很差。
所以我尝试创建包含文本和背景图层的.9.png文件,但缩放看起来很糟糕,因为我只能在不包含任何文本或图案的某些区域中拉伸我的图像。
我该怎么办?
答案 0 :(得分:0)
只需用android:layout_height="wrap_content"
替换所需按钮的android:layout_height="0dp"
即可,结果如下所示。
XML:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.flexbox.FlexboxLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:alignContent="stretch"
app:alignItems="stretch"
app:flexWrap="wrap">
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexDirection="column">
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:alignItems="stretch"
app:flexDirection="row"
app:layout_flexBasisPercent="25%">
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:flexDirection="column"
app:flexWrap="nowrap"
app:layout_flexBasisPercent="50%">
<Button
android:id="@+id/istilldontknow"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/holo_green_dark"
android:text="i still dont know"
android:textColor="@android:color/white" />
<Button
android:id="@+id/istilldontknow1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/holo_green_light"
android:text="i still dont know"
android:textColor="@android:color/white" />
</com.google.android.flexbox.FlexboxLayout>
<Button
android:id="@+id/istilldontknow11"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@android:color/holo_orange_light"
android:text="i still dont know"
android:textColor="@android:color/white"
app:layout_flexBasisPercent="50%" />
</com.google.android.flexbox.FlexboxLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="10"
app:layout_flexGrow="1">
<Button
android:id="@+id/events"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:background="@drawable/nav_bg"
android:text="EVENT"
android:textColor="@android:color/white" />
<Button
android:id="@+id/checkin"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:background="@drawable/nav_bg"
android:text="CHECK IN"
android:textColor="@android:color/white" />
<Button
android:id="@+id/podcast"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:background="@drawable/nav_bg"
android:scaleType="centerCrop"
android:text="Play some Music"
android:textColor="@android:color/white"
/>
</LinearLayout>
</com.google.android.flexbox.FlexboxLayout>
</com.google.android.flexbox.FlexboxLayout>