zoukankan      html  css  js  c++  java
  • Android 高亮指示层提示

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

     



    实现代码

    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();
    	}
    
    }
    


    源代码


  • 相关阅读:
    vsprintf函数和va_list用法详解
    copy_from_user 详解
    OK6410之蜂鸣器buzzer字符驱
    树莓派调试PCF8591遇到的小问题
    APM关键姿态控制源码讲解
    APM姿态控制流程
    没有安装gawk
    git 第一次上传本地代码到远程仓库,解决 ! [rejected] master -> master (non-fast-forward)错误
    C++ 全面刨析使用指针方法 _new _delete
    typedef&define的用法与区别
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7096098.html
Copyright © 2011-2022 走看看