美文网首页
TipView——基于android-target-toolti

TipView——基于android-target-toolti

作者: 姚瑶大坏蛋 | 来源:发表于2016-10-13 17:32 被阅读1335次

TipView——基于android-target-tooltip修改的新功能提示view(可自定义提示样式)

参考代码:https://github.com/sephiroth74/android-target-tooltip

备注:

  • 1.原来的代码本身也是支持用户自定义提示样式的withCustomView(R.layout.custom_view),但是这个方法设置以后,就没有“箭头了”,具体效果看截图;
  • 2.源代码各个java代码实现的功能:

1.TooltipOverlay、TooltipOverlayDrawable 是用来实现目标view上的点击效果,在我这个项目中暂时没有用到;

2.TooltipTextDrawable 实现背景---就是带有小箭头、圆角之类的背景,非常重要(核心就是代码画背景);

3.Tooltip 实现“提示view”的构建,展示,关闭,等等

  • 3.主要修改的代码段落:

Tooltip initializeView()方法中

if (null != mDrawable) {
    mTextView.setBackgroundDrawable(mDrawable);
if (mHideArrow) {
    mTextView.setPadding(mPadding / 2, mPadding / 2, mPadding / 2, mPadding / 2);
} else {
    mTextView.setPadding(mPadding, mPadding, mPadding, mPadding);
    }
}

这段代码中,mDrawable就是TooltipTextDrawable,指绘制的背景,所以只需要将mTextView改成我们需要的view就可以了,修改后:

if (null != mDrawable) {
    mLayout.setBackgroundDrawable(mDrawable);
if (mHideArrow) {
    mLayout.setPadding(mPadding / 2, mPadding / 2, mPadding / 2, mPadding / 2);
} else {
    mLayout.setPadding(mPadding, mPadding, mPadding, mPadding);
    }
}

其中mLayout就是我们自定义的样式,写在tooltip_view.xml中

mTextView = (TextView) mView.findViewById(android.R.id.text1);
mLbDismiss = (TextView) mView.findViewById(R.id.lbDismiss);
mLayout = (LinearLayout) mView.findViewById(R.id.layout);

tooltip_view.xml 代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#ff8800"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:padding="15dp">

    <TextView
        android:id="@android:id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="投资机构推荐的项目上线啦"
        android:textColor="@android:color/white"
        android:textSize="15dp"
        android:maxLines="2"/>

    <TextView
        android:id="@+id/lbDismiss"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:layout_alignParentRight="true"
        android:text="知道了"
        android:textColor="#ccffffff"
        android:textSize="13dp"
        android:layout_marginTop="17dp"
        android:padding="3dp"/>

</LinearLayout>

实现截图:

2.png

相关文章

网友评论

      本文标题:TipView——基于android-target-toolti

      本文链接:https://www.haomeiwen.com/subject/muowyttx.html