![Hex.pm](https://camo.githubusercontent.com/f55020be3fbfaef8166e30b44e23b02853bb266f7f4192dcddbb3418045e50f4/68747470733a2f2f696d672e736869656c64732e696f2f686578706d2f6c2f706c75672e737667)
- 一行代码完成某个View,或者多个View的高亮展示
- 支持基于AapterView(如ListView、GridView) 和RecyclerView 的item以及item中元素的高亮
- 自动识别圆角背景,也可以自定义高亮形状
- 高亮区域支持自定义大小、操作灵活
- 顺应变化,基于Android X
- 配置简单,导入方便
![image](https://camo.githubusercontent.com/08521b66e9da0691ea15df41899237572fdb1b10c837f7a29d8ec1342b04f280/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303139313030393138313230363932302e706e67)
dependencies {
implementation 'com.qw:curtain:0.0.5'
}
private void showCurtain(){
new Curtain(MainActivity.this)
.with(findViewById(R.id.textView))
.show();
}
![image](https://camo.githubusercontent.com/7cbec1091c9723150b454b206067d9d99e8238f62435dbde44f4a9070ee171b4/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f343334363139372d393263313934343735333635336262652e706e67)
private void showCurtain(){
new Curtain(MainActivity.this)
.with(findViewById(R.id.textView))
.withPadding(findViewById(R.id.textView),24)
.show();
}
private void showCurtain(){
new Curtain(MainActivity.this)
.with(findViewById(R.id.textView))
.with(findViewById(R.id.imageView))
.show();
}
![image](https://camo.githubusercontent.com/0466fd14aacb7a3a85f83c556b079bdcc590f7ddbc6b2c1f0f4a01f7a2ddd108/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f343334363139372d613562303337363637346137623337332e706e67)
- 如果你在蒙层上加上一些其他的元素,可以额外传入View布局:
private void showCurtain(){
new Curtain(MainActivity.this)
.with(findViewById(R.id.textView))
.setTopView(R.layout.nav_header_main)
.show();
}
![image](https://camo.githubusercontent.com/494ba342520f3e79e85f478a1de2fdaa35516f515863a21fbb3cd9111f7cd4de/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f343334363139372d663066373435336161653363656338302e706e67)
private void showCurtain(){
new Curtain(MainActivity.this)
.with(findViewById(R.id.imageView))
.setCallBack(new Curtain.CallBack() {
@Override
public void onShow(IGuide iGuide) {
}
@Override
public void onDismiss(IGuide iGuide) {
}
}).show();
}
- 默认会识别View的背景而生成相关高亮区域的形状,也可以自定形状:
private void showThirdGuide() {
new Curtain(SimpleGuideActivity.this)
.with(findViewById(R.id.btn_shape_custom))
//圆角
.withShape(findViewById(R.id.btn_shape_custom), new RoundShape(12))
//椭圆形
// .withShape(findViewById(R.id.btn_shape_custom),new CircleShape())
// 也可继承自 Shape 自己实现形状
// .withShape(findViewById(R.id.btn_shape_custom), new Shape() {
// @Override
// public void drawShape(Canvas canvas, Paint paint, HollowInfo info) {
//draw your shape here
// }
// })
.show();
}
- 在ListView 或者GridView 中使用:
/**
* 高亮item
*/
private void showGuideInItem() {
View item1 = ViewGetter.getFromAdapterView(listView, 5);
View item2 = ViewGetter.getFromAdapterView(listView, 2);
//如果你的View的位置不在屏幕中,返回值为null 需要判空处理
if (null == item1 || null == item2) {
return;
}
new Curtain(this)
.with(item1)
.with(item2)
.show();
}
/**
* 高亮item中的元素
*/
private void showGuideInItemChild() {
View item1 = ViewGetter.getFromAdapterView(listView, 1);
View item2 = ViewGetter.getFromAdapterView(listView, 3);
//如果你的View的位置不在屏幕中,返回值为null 需要判空处理
if (null == item1 || null == item2) {
return;
}
new Curtain(this)
.withShape(item1.findViewById(R.id.image), new CircleShape())
.with(item2.findViewById(R.id.tv_text))
.show();
}
![image](https://camo.githubusercontent.com/23f8f6728ec480cd47fa4d5d7e2d27fe8e0b559fc94b0527638666b1e1e1bf6d/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f31313539353037342d636566306334383934663838613564352e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f31323430)
private void showCurtain() {
new Curtain(MainActivity.this)
.with(findViewById(R.id.imageView))
//是否允许回退关闭蒙层
.setCancelBackPressed(false)
// 设置蒙层背景颜色
.setCurtainColor(0x88000000)
// 设置蒙层出现的动画 默认渐隐
.setAnimationStyle(R.style.testAnimation)
.show();
}
![image](https://camo.githubusercontent.com/3e1ce45dbd234be53e10d2fbba26c5984d2217294193b7db264490bb8fee70ca/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f31313539353037342d376337613731623164653634336331382e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970)
![image](https://camo.githubusercontent.com/d68a2a3f8092f6dd4d640c1ba740e3a407f7803dcdf663cafd0bfdc6e7ef1517/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f31313539353037342d336338666335303438386461353339622e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970)
Github地址