TipView——基于android-target-tooltip修改的新功能提示view(可自定義提示樣式)
參考代碼:https://github.com/sephiroth74/android-target-tooltip
備注:
- 1.原來(lái)的代碼本身也是支持用戶自定義提示樣式的
withCustomView(R.layout.custom_view),但是這個(gè)方法設(shè)置以后,就沒(méi)有“箭頭了”,具體效果看截圖; - 2.源代碼各個(gè)java代碼實(shí)現(xiàn)的功能:
1.TooltipOverlay、TooltipOverlayDrawable 是用來(lái)實(shí)現(xiàn)目標(biāo)view上的點(diǎn)擊效果,在我這個(gè)項(xiàng)目中暫時(shí)沒(méi)有用到;
2.TooltipTextDrawable 實(shí)現(xiàn)背景---就是帶有小箭頭、圓角之類的背景,非常重要(核心就是代碼畫(huà)背景);
3.Tooltip 實(shí)現(xiàn)“提示view”的構(gòu)建,展示,關(guān)閉,等等
- 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就是我們自定義的樣式,寫(xiě)在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="投資機(jī)構(gòu)推薦的項(xiàng)目上線啦"
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>
實(shí)現(xiàn)截圖:

2.png