Android 高亮指示层提示

本文介绍了一种在安卓应用中实现高亮引导层的方法,通过自定义HighLight类来帮助用户快速了解应用界面的重要元素。代码示例展示了如何为特定按钮添加提示遮罩,并设置了位置回调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此库出自翔神之手   用起来绝对方便

 



实现代码

package com.jock.highlight;

import android.app.Activity;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import com.jock.lib.HighLight;

public class MainActivity extends Activity
{

	private HighLight mHightLight;

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		findViewById(R.id.id_btn_amazing).post(new Runnable()
		{
			@Override
			public void run()
			{
				showTipMask();
			}
		}

		);

	}

	private void showTipMask()
	{
		mHightLight = new HighLight(MainActivity.this)//
				.anchor(findViewById(R.id.id_container))// 如果是Activity上增加引导层,不需要设置anchor
				.addHighLight(R.id.id_btn_important, R.layout.info_up, new HighLight.OnPosCallback()
				{
					@Override
					public void getPos(float rightMargin, float bottomMargin, RectF rectF, HighLight.MarginInfo marginInfo)
					{
						System.out.println("rectF.right" + rectF.right);
						System.out.println("rectF.width()" + rectF.width());
						System.out.println("rectF.bottom" + rectF.bottom);
						System.out.println("--------------------------------------------------------------------");

						marginInfo.leftMargin = rectF.right - rectF.width() / 2;
						marginInfo.topMargin = rectF.bottom;
					}
				})

				.addHighLight(R.id.id_btn_amazing, R.layout.info_down, new HighLight.OnPosCallback()
				{
					/**
					 * @param rightMargin
					 *            高亮view在anchor中的右边距
					 * @param bottomMargin
					 *            高亮view在anchor中的下边距
					 * @param rectF
					 *            高亮view的l,t,r,b,w,h都有
					 * @param marginInfo
					 *            设置你的布局的位置,一般设置l,t或者r,b
					 */
					@Override
					public void getPos(float rightMargin, float bottomMargin, RectF rectF, HighLight.MarginInfo marginInfo)
					{

						System.out.println("rightMargin" + rightMargin);
						System.out.println("rectF.width()" + rectF.width());
						System.out.println("rectF.height()" + rectF.height());
						System.out.println("bottomMargin" + bottomMargin);
						System.out.println("--------------------------------------------------------------------");
						marginInfo.rightMargin = rightMargin + rectF.width() / 2;
						marginInfo.bottomMargin = bottomMargin + rectF.height();
					}

				});
	

		mHightLight.show();
	}

	public void remove(View view)
	{
		mHightLight.remove();
	}

	public void add(View view)
	{
		mHightLight.show();
	}

}


源码


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值