在Android中开发Material Design主屏幕小部件

时间:2015-05-03 17:16:12

标签: android android-widget material-design

好的,我正在研究一个非常简单的Android主屏幕小部件,该小部件从图像板中获取最新的图像并将其显示在图像视图中。

我希望选择Style这个小部件,以符合Googles Material设计指南,但是,我在运行Lollipop 5.1的Nexus 5上开发和测试时遇到了以下问题 -

我似乎无法在小部件中使用cardview。它给了我一个没有找到异常的类但是我没有预览布局这样的例外,我的gradle有正确的依赖,所以我怀疑它更多地与小部件兼容性有关?

所以我做了一些进一步的阅读,在Google API页面上有关小部件的内容,它有一个非常具体的小部件支持视图列表,其中没有,令我惊讶的是包括卡片视图。所以我回到了原来的老Imageview

我想我的问题随之而来,我怎么能让这个imageview看起来像一张材料设计卡呢? EG,圆角,微妙的3D效果,投影,ETC.我不希望给imageview一个边框,图像的边缘应该延伸到边缘并被圆角修剪。

我试过简单地将Imageview的样式设置为cardview的样式,但这似乎完全是nada:)

任何人都有一些想法?谢谢!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

这是很久以前的事了,但是用XML制作一个简单的卡片背景是非常可行的。

执行此操作的方法是在.xml应用资源文件夹中创建cardview-esque drawables文件。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white" />
    <corners android:radius="4dp" />
</shape>

并将Widget的XML布局的背景视图设置为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/widget_card_background"
    android:orientation="vertical">

    <.../>

</LinearLayout>

你是正确的,因为CardView不是Android Widgets的可用视图类型,但这应该创建你在2年前寻找的功能