java - 我想向应用程序工具栏中的响铃图标添加动画

标签 java android android-studio material-design

我想将我的 Android 应用程序链接到该网页。每当网页内容发生变化时,应该触发触发器并为我的 Android 应用程序工具栏中的响铃图标创建动画,以便用户能够知道网页中添加了新内容。请帮忙!!

最佳答案

试试这个。

创建动画:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="80"
    android:fromDegrees="-10"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="5"
    android:repeatMode="reverse"
    android:toDegrees="10" />

创建菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/item_notification"
        app:actionLayout="@layout/your_custom_layout"
        android:title="Notification"
        app:showAsAction="always" />
</menu>

为菜单创建自定义布局

<?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">

    <ImageView
        android:layout_width="wrap_content"
        android:padding="16dp"
        android:id="@+id/ivNotification"
        android:src="@drawable/ic_action_notification"
        android:layout_height="wrap_content" />
</LinearLayout>

在activity中添加动画代码

public class Testactivity extends AppCompatActivity{
    ImageView ivNotification;
    Animation shake;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Button btn = new Button(this);
        btn.setText("Shake");
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                shake();
            }
        });
        shake = AnimationUtils.loadAnimation(this, R.anim.shake);
        setContentView(btn);
    }

    private void shake() {
        ivNotification.startAnimation(shake);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_test, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        ivNotification = (ImageView) menu.findItem(R.id.item_notification).getActionView().findViewById(R.id.ivNotification);
        return super.onPrepareOptionsMenu(menu);
    }

}

关于java - 我想向应用程序工具栏中的响铃图标添加动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45072870/

相关文章:

java - FEST:当单元格位于带有 CellRenderPane 的 JTable 下时检索单元格值

Java:将 int 转换为 InetAddress

Android Studio 4.0 卡在刷新中,无法运行项目

java - 如何跟踪 Java 中的方法调用?

java - PHP 中的 http 服务器

android - 向自托管服务器发送报告时可使用 ACRA for Android 配置 URL?

android - Root设备的 INJECT_EVENTS 权限

java - 解析 xml 特殊字符问题

android - 找不到Android Studio Gradle DSL方法: 'android()'

java - 在 "graphView"中标签不是从原点开始