这是我想到的链接。
https://dribbble.com/shots/1407665-Categories/attachments/204971
是否有一个人们都知道可以管理这个的流行图书馆,否则我可以选择自定义路线。
我的XML中定义了9个按钮没问题。
接下来我知道我必须在drawable文件夹中创建一个xml文件,例如" button_shape.xml"。然后我将其添加到我的代码中:
android:background="@drawable/button_shape"
我让我的按钮有一个图像,我假设:
android:drawableTop="@drawable/buttonImage"
我猜最后是如何创建一个形状,使底部颜色与文本保持一致。允许不同的按钮大小。我也可以通过在每个按钮上设置样式并将其定义为:
来轻松地交替颜色 <style name ="ButtonTheme.Custom1" parent="Base.Widget.AppCompat.Button.Colored">
<item name="colorPrimary">@android:color/holo_blue_light</item>
<item name="colorPrimaryDark">@android:color/holo_blue_dark</item>
</style>
<style name ="ButtonTheme.Custom2" parent="Base.Widget.AppCompat.Button.Colored">
<item name="colorPrimary">@android:color/holo_green_light</item>
<item name="colorPrimaryDark">@android:color/holo_green_dark</item>
</style>
<style name ="ButtonTheme.Custom3" parent="Base.Widget.AppCompat.Button.Colored">
<item name="colorPrimary">@android:color/holo_red_light</item>
<item name="colorPrimaryDark">@android:color/holo_red_dark</item>
</style>
<style name ="ButtonTheme.Custom4" parent="Base.Widget.AppCompat.Button.Colored">
<item name="colorPrimary">@android:color/holo_orange_light</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
</style>
<style name ="ButtonTheme.Custom5" parent="Base.Widget.AppCompat.Button.Colored">
<item name="colorPrimary">@android:color/holo_blue_bright</item>
<item name="colorPrimaryDark">@android:color/holo_blue_light</item>
</style>
到目前为止我的自定义形状是这个,它很接近;但是如何让较暗的颜色保持一致的尺寸,而另一个颜色根据按钮的大小移动?
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:bottom="10dp">
<shape android:shape="rectangle" >
<size android:height="10dp" />
<solid android:color="@color/colorPrimaryDark" />
</shape>
</item>
<item android:top="120dp">
<shape android:shape="rectangle" >
<size android:height="120dp" />
<solid android:color="@color/colorPrimary" />
</shape>
</item>
</layer-list>
答案 0 :(得分:1)
您可以使用RecyclerView和StaggeredGrid
https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager.html