项目地址:https://github.com/nhaarman/supertooltips
我比较懒,懒得以后重新写了,所以直接copy了。
用法:
我比较懒,懒得以后重新写了,所以直接copy了。
![](https://i-blog.csdnimg.cn/blog_migrate/a5e799f0d9bf01ecec91ac593f46b583.png)
用法:
package com.haarman.supertooltips;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import com.mobovip.views.ToolTip;
import com.mobovip.views.ToolTipRelativeLayout;
import com.mobovip.views.ToolTipView;
public class MainActivity extends Activity implements View.OnClickListener, ToolTipView.OnToolTipViewClickedListener {
private ToolTipView mRedToolTipView;
private ToolTipView mGreenToolTipView;
private ToolTipView mBlueToolTipView;
private ToolTipView mPurpleToolTipView;
private ToolTipView mOrangeToolTipView;
private ToolTipRelativeLayout mToolTipFrameLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolTipFrameLayout = (ToolTipRelativeLayout) findViewById(R.id.activity_main_tooltipframelayout);
findViewById(R.id.activity_main_redtv).setOnClickListener(MainActivity.this);
findViewById(R.id.activity_main_greentv).setOnClickListener(MainActivity.this);
findViewById(R.id.activity_main_bluetv).setOnClickListener(MainActivity.this);
findViewById(R.id.activity_main_purpletv).setOnClickListener(MainActivity.this);
findViewById(R.id.activity_main_orangetv).setOnClickListener(MainActivity.this);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
addRedToolTipView();
}
}, 500);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
addGreenToolTipView();
}
}, 700);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
addOrangeToolTipView();
}
}, 900);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
addBlueToolTipView();
}
}, 1100);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
addPurpleToolTipView();
}
}, 1300);
}
private void addRedToolTipView() {
mRedToolTipView = mToolTipFrameLayout.showToolTipForView(
new ToolTip()
.withText("A beautiful Button")
.withColor(getResources().getColor(R.color.holo_red))
.withShadow(true),
findViewById(R.id.activity_main_redtv));
mRedToolTipView.setOnToolTipViewClickedListener(MainActivity.this);
}
private void addGreenToolTipView() {
mGreenToolTipView = mToolTipFrameLayout.showToolTipForView(
new ToolTip()
.withText("Another beautiful Button!")
.withColor(getResources().getColor(R.color.holo_green)),
findViewById(R.id.activity_main_greentv));
mGreenToolTipView.setOnToolTipViewClickedListener(MainActivity.this);
}
private void addBlueToolTipView() {
mBlueToolTipView = mToolTipFrameLayout.showToolTipForView(
new ToolTip()
.withText("Moarrrr buttons!")
.withColor(getResources().getColor(R.color.holo_blue))
.withAnimationType(ToolTip.ANIMATIONTYPE_FROMTOP),
findViewById(R.id.activity_main_bluetv));
mBlueToolTipView.setOnToolTipViewClickedListener(MainActivity.this);
}
private void addPurpleToolTipView() {
mPurpleToolTipView = mToolTipFrameLayout.showToolTipForView(
new ToolTip()
.withContentView(LayoutInflater.from(this).inflate(R.layout.custom_tooltip, null))
.withColor(getResources().getColor(R.color.holo_purple)),
findViewById(R.id.activity_main_purpletv));
mPurpleToolTipView.setOnToolTipViewClickedListener(MainActivity.this);
}
private void addOrangeToolTipView() {
mOrangeToolTipView = mToolTipFrameLayout.showToolTipForView(
new ToolTip()
.withText("Tap me!")
.withColor(getResources().getColor(R.color.holo_orange)),
findViewById(R.id.activity_main_orangetv));
mOrangeToolTipView.setOnToolTipViewClickedListener(MainActivity.this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.activity_main_redtv:
if (mRedToolTipView == null) {
addRedToolTipView();
} else {
mRedToolTipView.remove();
mRedToolTipView = null;
}
break;
case R.id.activity_main_greentv:
if (mGreenToolTipView == null) {
addGreenToolTipView();
} else {
mGreenToolTipView.remove();
mGreenToolTipView = null;
}
break;
case R.id.activity_main_bluetv:
if (mBlueToolTipView == null) {
addBlueToolTipView();
} else {
mBlueToolTipView.remove();
mBlueToolTipView = null;
}
break;
case R.id.activity_main_purpletv:
if (mPurpleToolTipView == null) {
addPurpleToolTipView();
} else {
mPurpleToolTipView.remove();
mPurpleToolTipView = null;
}
break;
case R.id.activity_main_orangetv:
if (mOrangeToolTipView == null) {
addOrangeToolTipView();
} else {
mOrangeToolTipView.remove();
mOrangeToolTipView = null;
}
break;
}
}
@Override
public void onToolTipViewClicked(ToolTipView toolTipView) {
if (mRedToolTipView == toolTipView) {
mRedToolTipView = null;
} else if (mGreenToolTipView == toolTipView) {
mGreenToolTipView = null;
} else if (mBlueToolTipView == toolTipView) {
mBlueToolTipView = null;
} else if (mPurpleToolTipView == toolTipView) {
mPurpleToolTipView = null;
} else if (mOrangeToolTipView == toolTipView) {
mOrangeToolTipView = null;
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:baselineAligned="false" tools:context=".MainActivity" > <Button android:id="@+id/activity_main_redtv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/red" /> <Button android:id="@+id/activity_main_greentv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="@string/green" /> <Button android:id="@+id/activity_main_bluetv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="@string/blue" /> <Button android:id="@+id/activity_main_purpletv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:text="@string/purple" /> <Button android:id="@+id/activity_main_orangetv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="@string/orange" /> <com.mobovip.views.ToolTipRelativeLayout android:id="@+id/activity_main_tooltipframelayout" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>