如何更改操作栏颜色并单击打开文件?
How to change the action bar color and open a file on click?
我现在正在为 Android 开发一个应用程序,但有两件事我不知道该怎么做。
- 我想根据用户的要求改变操作栏的颜色,所以我想动态改变它。我看到一些答案说我需要使用:
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40")));
但由于某些原因,它对我不起作用。
- 我已经在我的应用程序中添加了下载文件的选项,但我使用的是一种不寻常的方式,因此它不会在下载完成时创建通知。我想为我的用户提供一种访问该文件的简便方法。我可以创建一个单击时打开文件的按钮吗?
谢谢!
1) 为此,我建议您拥有 Example here 工具栏视图并将其设置为您的操作栏。只需在顶部添加此视图:
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
然后在Activity
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
在此之后,您可以更改视图 myToolbar 中的所有内容。设置背景颜色等。它将起作用。仅使用 Actionbar 是过时且过时的方法。
2) 是的,您可以,这就像有意打开新的 Activity。 Android 有一些内置的 Intent Action Type 可以帮助您打开或查看特定文件,但是为此您需要知道您要处理的文件类型。
假设如果您有可以使用的文档类型分类的文件类型,
ACTION_OPEN_DOCUMENT
具有特定 MIME_TYPE
(Android 4.4 或更高)
或者如果您要处理一些媒体文件 (Audio/Video)
可以使用,
ACTION_VIEW
要识别特定文件的MIME_TYPE
,您可以使用函数
guessContentTypeFromName (String url)
Link
或getMimeTypeFromExtension(String extension)
Link
希望这对您有所帮助:)
您不能更改颜色,因为您应该调用 getSupportActionBar
() 并且它也适用于 api >11;
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.black)));
或
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40")));
关于你的第二个问题,我们需要更多信息和你下载文件的代码。您完全可以通过单击访问文件,但您需要知道文件类型和存储文件的目录以及目标 api 以检查运行时权限,例如
我建议你用你的所有代码和这个信息问另一个问题
我现在正在为 Android 开发一个应用程序,但有两件事我不知道该怎么做。
- 我想根据用户的要求改变操作栏的颜色,所以我想动态改变它。我看到一些答案说我需要使用:
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40")));
但由于某些原因,它对我不起作用。
- 我已经在我的应用程序中添加了下载文件的选项,但我使用的是一种不寻常的方式,因此它不会在下载完成时创建通知。我想为我的用户提供一种访问该文件的简便方法。我可以创建一个单击时打开文件的按钮吗?
谢谢!
1) 为此,我建议您拥有 Example here 工具栏视图并将其设置为您的操作栏。只需在顶部添加此视图:
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
然后在Activity
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
在此之后,您可以更改视图 myToolbar 中的所有内容。设置背景颜色等。它将起作用。仅使用 Actionbar 是过时且过时的方法。
2) 是的,您可以,这就像有意打开新的 Activity。 Android 有一些内置的 Intent Action Type 可以帮助您打开或查看特定文件,但是为此您需要知道您要处理的文件类型。
假设如果您有可以使用的文档类型分类的文件类型,
ACTION_OPEN_DOCUMENT
具有特定 MIME_TYPE
(Android 4.4 或更高)
或者如果您要处理一些媒体文件 (Audio/Video)
可以使用,
ACTION_VIEW
要识别特定文件的MIME_TYPE
,您可以使用函数
guessContentTypeFromName (String url)
Link
或getMimeTypeFromExtension(String extension)
Link
希望这对您有所帮助:)
您不能更改颜色,因为您应该调用 getSupportActionBar
() 并且它也适用于 api >11;
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.black)));
或
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40")));
关于你的第二个问题,我们需要更多信息和你下载文件的代码。您完全可以通过单击访问文件,但您需要知道文件类型和存储文件的目录以及目标 api 以检查运行时权限,例如
我建议你用你的所有代码和这个信息问另一个问题