如何在操作栏中制作自定义进度条?

发布于 2024-11-26 18:32:16 字数 1166 浏览 0 评论 0原文

与其说它是操作栏,不如说它是创建一个我需要帮助的自定义进度栏。我想创建一个与 Catch Notes 完全相同的 - https://ssl.gstatic.com/android /market/com. Threebanana.notes/ss-480-0-9 https://market.android.com/details?id=com. Threebanana .notes

我已经以多种不同的方式尝试了多次。我看过很多教程,包括 Android 开发指南。我现在非常生气。有人可以帮我吗?

现在,我的操作栏正在调用通用进度栏布局,并且效果很好。

switch (item.getItemId()) {
    case R.id.refresh:
        item.setActionView(R.layout.progress);
        return true;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" android:weightSum="1">

<ProgressBar android:id="@+id/progress" 
style="?android:attr/progressBarStyleSmall"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</ProgressBar>

</LinearLayout>

It's not so much the action bar, as much as it is creating a custom progress bar that I need help with. I want to create one exactly like Catch Notes -
https://ssl.gstatic.com/android/market/com.threebanana.notes/ss-480-0-9
https://market.android.com/details?id=com.threebanana.notes

I've tried multiple times in multiple different ways. I've looked at numerous tutorials including the Android Dev Guide. I'm pretty much angry at this point. Will someone offer me some help, please?

Right now, my Action Bar is calling a generic progress bar layout and that works fine.

switch (item.getItemId()) {
    case R.id.refresh:
        item.setActionView(R.layout.progress);
        return true;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" android:weightSum="1">

<ProgressBar android:id="@+id/progress" 
style="?android:attr/progressBarStyleSmall"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</ProgressBar>

</LinearLayout>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱本泡沫多脆弱 2024-12-03 18:32:16

要使进度条显示出来,需要在ActionBar.displayOptions中打开ActionBar.DISPLAY_SHOW_CUSTOM。

Catch Notes 使用自定义动画作为进度条。我认为默认的 Holo(正常大小)是一个合理的选择,但要获得类似于其特定的东西,您需要创建一个animationDrawable。

http://developer.android.com/reference/android/graphics/drawable /AnimationDrawable.html

然后使用 getCustomView() 从 ActionBar 获取自定义视图,找到您的 ImageView,并启动它的动画。

To make the progress bar show up, you need to turn on ActionBar.DISPLAY_SHOW_CUSTOM in ActionBar.displayOptions.

Catch notes is using a custom animation for their progress bar. I think that the default Holo (normal-sized) one is a reasonable alternative, but to get something like their specific one, you'll want to create an animationDrawable.

http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

Then get the custom view from the ActionBar with getCustomView(), find your ImageView, and start it animating.

站稳脚跟 2024-12-03 18:32:16

进度条周围的 LinearLayout 是不必要的;另请注意,我在设置项目的操作视图后添加了“expandActionView()”。

switch (item.getItemId()) {
    case R.id.refresh:
        item.setActionView(R.layout.progress);
        item.expandActionView();
        return true;

在 res/layout/progress.xml 中包含此内容:

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/progressBarStyleSmall"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</ProgressBar>

从技术上讲,为此设置布局是不必要的:

switch (item.getItemId()) {
    case R.id.refresh:
        item.setActionView(new ProgressBar(this, null, android.R.attr.progressBarStyleSmall));
        item.expandActionView();
        return true;

The LinearLayout surrounding the progress bar is unnecessary; also, notice that I added "expandActionView()" after setting the item's action view.

switch (item.getItemId()) {
    case R.id.refresh:
        item.setActionView(R.layout.progress);
        item.expandActionView();
        return true;

Have this in res/layout/progress.xml:

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/progressBarStyleSmall"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</ProgressBar>

Technically, having a layout for this is unnecessary:

switch (item.getItemId()) {
    case R.id.refresh:
        item.setActionView(new ProgressBar(this, null, android.R.attr.progressBarStyleSmall));
        item.expandActionView();
        return true;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文