在 Android 中开发 Material 设计主屏幕小部件
Developing Material Design homescreen-widgets in Android
好的,所以我正在开发一个非常简单的 Android 主屏幕小部件,它从图像板上获取最新图像并将其显示在图像视图中。
我希望可以选择设置此小部件的样式,以符合 Googles Material 设计指南,但是,我在开发和测试我的系统时遇到了以下问题Nexus 5 运行 棒棒糖 5.1 -
我似乎无法在小部件中使用卡片视图。它给了我一个 class not found 异常但是我没有得到这样的异常预览布局和我的 gradle 有正确的依赖性所以我怀疑它更多地与小部件兼容性有关?
所以我做了一些进一步的阅读,在 Google API 关于小部件的页面上,它有一个非常具体的小部件支持的视图列表,令我惊讶的是,其中不包括卡片视图。所以我回到了我的普通旧 Imageview
我想我的问题是,如何让这个图像视图看起来像 material 设计卡片? EG、圆角、微妙的 3d 效果、投影等。我不想给 imageview 一个边框,图像的边缘应该延伸到边缘并被圆角剪裁。
我试过将 Imageview 的样式简单地设置为 cardview 的样式,但这似乎完全没用:)
有人有想法吗?谢谢!
您可能想查看 google i/o 应用程序的来源:https://github.com/google/iosched/blob/master/android/src/main/res/layout/widget.xml
这是很久以前的事了,但是在XML中做一个简单的卡片背景是非常可行的。
执行此操作的方法是在 drawables
应用程序资源文件夹中创建一个 cardview-esque .xml
文件。
<?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 小部件的可用视图类型,但这应该创建你在 2 年前寻找的功能
好的,所以我正在开发一个非常简单的 Android 主屏幕小部件,它从图像板上获取最新图像并将其显示在图像视图中。
我希望可以选择设置此小部件的样式,以符合 Googles Material 设计指南,但是,我在开发和测试我的系统时遇到了以下问题Nexus 5 运行 棒棒糖 5.1 -
我似乎无法在小部件中使用卡片视图。它给了我一个 class not found 异常但是我没有得到这样的异常预览布局和我的 gradle 有正确的依赖性所以我怀疑它更多地与小部件兼容性有关?
所以我做了一些进一步的阅读,在 Google API 关于小部件的页面上,它有一个非常具体的小部件支持的视图列表,令我惊讶的是,其中不包括卡片视图。所以我回到了我的普通旧 Imageview
我想我的问题是,如何让这个图像视图看起来像 material 设计卡片? EG、圆角、微妙的 3d 效果、投影等。我不想给 imageview 一个边框,图像的边缘应该延伸到边缘并被圆角剪裁。
我试过将 Imageview 的样式简单地设置为 cardview 的样式,但这似乎完全没用:)
有人有想法吗?谢谢!
您可能想查看 google i/o 应用程序的来源:https://github.com/google/iosched/blob/master/android/src/main/res/layout/widget.xml
这是很久以前的事了,但是在XML中做一个简单的卡片背景是非常可行的。
执行此操作的方法是在 drawables
应用程序资源文件夹中创建一个 cardview-esque .xml
文件。
<?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 小部件的可用视图类型,但这应该创建你在 2 年前寻找的功能