├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── jaydenxiao │ │ └── highlightguideview │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── jaydenxiao │ │ │ └── highlightguideview │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-xhdpi │ │ ├── circle_button.png │ │ ├── dmtext.png │ │ ├── dstext.png │ │ ├── listlead.png │ │ └── qtext.png │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── jaydenxiao │ └── highlightguideview │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── guider ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── jaydenxiao │ │ └── guider │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── jaydenxiao │ │ │ └── guider │ │ │ ├── HighLightGuideView.java │ │ │ ├── UiUtil.java │ │ │ └── ViewUtils.java │ └── res │ │ ├── drawable-xhdpi │ │ ├── hl_down_left.png │ │ ├── hl_down_right.png │ │ ├── hl_up_left.png │ │ └── hl_up_right.png │ │ └── values │ │ ├── colors.xml │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── jaydenxiao │ └── guider │ └── ExampleUnitTest.java ├── screenshots └── device-2016-08-16-161213.gif └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | HighLightGuideView -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 25 | 26 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 1.8 51 | 52 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HighLightGuideView 2 | **项目介绍:** A library for app's new feature guiding,it supports the shape of round, oval and rectangular! 3 | (一个用于 app 新功能高亮引导的库,支持圆形、椭圆形、矩形高亮形状) 4 | 5 | ![预览图](https://github.com/jaydenxiao2016/HighLightGuideView/blob/master/screenshots/device-2016-08-16-161213.gif) 6 | 7 | **支持配置属性:** 8 | (1)外部点击是否关闭setTouchOutsideDismiss 9 | (2)控件高亮形状类型,有圆形、椭圆形、矩形setHighLightStyle 10 | (3)高亮画笔类型,有平滑和一般,默认平滑setMaskblurstyle 11 | (4)蒙层颜色setMaskColor 12 | (5)高亮控件padding,setHighLisghtPadding 13 | 14 | **使用方法:** 15 | 16 | dependencies { 17 | 18 | compile 'com.jaydenxiao:guider:1.0.0' 19 | } 20 | 21 | **1. 全屏提示,没高亮控件情况引导** 22 | 23 | HighLightGuideView.builder(this) 24 | .addNoHighLightGuidView(R.drawable.listlead) 25 | .setMaskColor(getResources().getColor(R.color.mask_color)) 26 | .show(); 27 | 28 | **2. 有高亮控件情况引导(单个高亮控件)** 29 | 30 | HighLightGuideView.builder(this) 31 | .addHighLightGuidView(view, R.drawable.dmtext) 32 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_OVAL) 33 | .show(); 34 | 35 | **3. 有高亮控件情况引导(多个高亮控件)** 36 | 37 | HighLightGuideView.builder(this) 38 | .addHighLightGuidView(view1, R.drawable.dstext) 39 | .addHighLightGuidView(view2, R.drawable.dmtext) 40 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_OVAL) 41 | .show(); 42 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "24.0.0 rc4" 6 | 7 | defaultConfig { 8 | applicationId "com.jaydenxiao.highlightguideview" 9 | minSdkVersion 15 10 | targetSdkVersion 23 11 | versionCode 1 12 | versionName "1.0.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | testCompile 'junit:junit:4.12' 25 | compile project(':guider') 26 | compile 'com.android.support:appcompat-v7:23.4.0' 27 | 28 | } 29 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in H:\android-22\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/jaydenxiao/highlightguideview/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.jaydenxiao.highlightguideview; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/jaydenxiao/highlightguideview/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.jaydenxiao.highlightguideview; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.view.View; 6 | import android.view.Window; 7 | import android.widget.Button; 8 | 9 | import com.jaydenxiao.guider.HighLightGuideView; 10 | 11 | 12 | public class MainActivity extends AppCompatActivity implements View.OnClickListener { 13 | 14 | private Button bt_top_left; 15 | private Button bt_top_right; 16 | private Button bt_middle; 17 | private Button bt_bottom_left; 18 | private Button bt_bottom_right; 19 | 20 | @Override 21 | protected void onCreate(Bundle savedInstanceState) { 22 | super.onCreate(savedInstanceState); 23 | getWindow().requestFeature(Window.FEATURE_NO_TITLE); 24 | setContentView(R.layout.activity_main); 25 | bindViews(); 26 | } 27 | 28 | private void bindViews() { 29 | bt_top_left = (Button) findViewById(R.id.bt_top_left); 30 | bt_top_left.setOnClickListener(this); 31 | bt_top_right = (Button) findViewById(R.id.bt_top_right); 32 | bt_top_right.setOnClickListener(this); 33 | bt_middle = (Button) findViewById(R.id.bt_middle); 34 | bt_middle.setOnClickListener(this); 35 | bt_bottom_left = (Button) findViewById(R.id.bt_bottom_left); 36 | bt_bottom_left.setOnClickListener(this); 37 | bt_bottom_right = (Button) findViewById(R.id.bt_bottom_right); 38 | bt_bottom_right.setOnClickListener(this); 39 | HighLightGuideView.builder(this) 40 | .addNoHighLightGuidView(R.drawable.listlead) 41 | .setMaskColor(getResources().getColor(R.color.mask_color)) 42 | .show(); 43 | } 44 | 45 | @Override 46 | public void onClick(View view) { 47 | switch (view.getId()) { 48 | case R.id.bt_top_left: 49 | HighLightGuideView.builder(this) 50 | .addHighLightGuidView(bt_top_left, R.drawable.dmtext) 51 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_OVAL) 52 | .show(); 53 | break; 54 | case R.id.bt_top_right: 55 | HighLightGuideView.builder(this) 56 | .addHighLightGuidView(bt_top_right, R.drawable.dstext) 57 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_RECT) 58 | .show(); 59 | break; 60 | case R.id.bt_middle: 61 | HighLightGuideView.builder(this) 62 | .addHighLightGuidView(bt_middle, R.drawable.dmtext) 63 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_CIRCLE) 64 | .show(); 65 | break; 66 | case R.id.bt_bottom_left: 67 | HighLightGuideView.builder(this) 68 | .addHighLightGuidView(bt_bottom_left, R.drawable.dstext) 69 | .addHighLightGuidView(bt_top_right, R.drawable.dmtext) 70 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_RECT) 71 | .show(); 72 | break; 73 | case R.id.bt_bottom_right: 74 | HighLightGuideView.builder(this) 75 | .addHighLightGuidView(bt_bottom_right, R.drawable.dstext) 76 | .addHighLightGuidView(bt_top_left, R.drawable.dmtext) 77 | .setHighLightStyle(HighLightGuideView.VIEWSTYLE_OVAL) 78 | .show(); 79 | break; 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/circle_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaydenxiao2016/HighLightGuideView/679e53f4193f11b4b528ebd066e815cb7d473300/app/src/main/res/drawable-xhdpi/circle_button.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/dmtext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaydenxiao2016/HighLightGuideView/679e53f4193f11b4b528ebd066e815cb7d473300/app/src/main/res/drawable-xhdpi/dmtext.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/dstext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaydenxiao2016/HighLightGuideView/679e53f4193f11b4b528ebd066e815cb7d473300/app/src/main/res/drawable-xhdpi/dstext.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/listlead.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaydenxiao2016/HighLightGuideView/679e53f4193f11b4b528ebd066e815cb7d473300/app/src/main/res/drawable-xhdpi/listlead.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/qtext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaydenxiao2016/HighLightGuideView/679e53f4193f11b4b528ebd066e815cb7d473300/app/src/main/res/drawable-xhdpi/qtext.png -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 13 | 14 | 19 |