zoukankan      html  css  js  c++  java
  • 实现一个类似Chrome新功能提示的popoup

    先让我们看一下Chrome的popup是什么样的:

    这个“直接搜索网页”与“在打开的标签页之间切换”就是两个功能导航,还做了一个动画效果,会不停的上下晃。

    我通过WindowManager的addView也实现了一个类似的效果,如下图:

    主要是通过PopupWindow添加一个的view实现的。这个View代码如下:

    public class PopupView extends RelativeLayout {
    
        public PopupView(Context context) {
            super(context);
            LayoutInflater inflater = LayoutInflater.from(context);
            inflater.inflate(R.layout.pup_up_full_layout, this);
        }
    
        @Override
        public void onAttachedToWindow() {
            super.onAttachedToWindow();
            Context context = getContext();
            Animation anim = AnimationUtils.loadAnimation(context, R.anim.popup_animation);
            View view = findViewById(R.id.notification);
            Resources res = context.getResources();
            Drawable background = res.getDrawable(R.drawable.bubble);
            // 图片底色为白色,需要加滤镜,green为自己定义的颜色
            background.setColorFilter(res.getColor(R.color.green), PorterDuff.Mode.SRC_ATOP);
            view.setBackground(background);
            // 增加动画
            view.startAnimation(anim);
        }
    }
    布局文件pup_up_full_layout.xml代码
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <TextView
            android:id="@+id/notification"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_gravity="top"
            android:layout_marginRight="15dp"
            android:drawableTop="@drawable/bubble_point_green"
            android:text="@string/new_feature" />
    
    </RelativeLayout>

    动画文件popup_animation.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <translate
            android:duration="1000"
            android:fromYDelta="-89.5%p"
            android:toYDelta="-89%p"
            android:repeatCount="infinite"
            android:repeatMode="reverse" />
    
    </set>

    源码

  • 相关阅读:
    Linux对文件的权限管理
    在Eclipse中安装TestNG
    JUnit 4 与 TestNG 对比
    postman之HTTP请求
    Fiddler抓包后保存为JMX(jmeter脚本,不限jmeter使用版本)
    JMeter使用之BlazeMeter的安装及初步使用
    Postman的第一个案例演示
    Postman的安装及注意事项
    SVN学习记录
    TestNG中如何执行测试
  • 原文地址:https://www.cnblogs.com/yuanzhanxue/p/3683367.html
Copyright © 2011-2022 走看看