Skip to content

Commit

Permalink
新增是否允许缩放和拖动属性
Browse files Browse the repository at this point in the history
  • Loading branch information
wangxiaoyun11 committed Dec 18, 2020
1 parent 58bbb5c commit 609d2a7
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 17 deletions.
Binary file modified .idea/caches/build_file_checksums.ser
Binary file not shown.
Binary file added DemoImg/demo3.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@
|![normal](https://github.com/NoEndToLF/ChinaMapView/blob/master/DemoImg/demo1.gif)| ![fix](https://github.com/NoEndToLF/ChinaMapView/blob/master/DemoImg/demo2.gif)|


|展示省份名字(1.0.2新增支持) |
| :--------:|
| ![name](https://github.com/NoEndToLF/ChinaMapView/blob/master/DemoImg/demo0.gif)|
|展示省份名字(1.0.2新增支持) |只允许点击,不允许缩放和拖动(1.0.4新增支持) |
| :--------:| :--------:|
| ![name](https://github.com/NoEndToLF/ChinaMapView/blob/master/DemoImg/demo0.gif)| ![fix](https://github.com/NoEndToLF/ChinaMapView/blob/master/DemoImg/demo3.gif)|

# 开始使用
* [基本API](#基本API)
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// implementation project(':chinamapviewlibrary')
implementation 'com.github.NoEndToLF:ChinaMapView:1.0.3'
implementation project(':chinamapviewlibrary')
// implementation 'com.github.NoEndToLF:ChinaMapView:1.0.3'
implementation 'com.android.support:design:29.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
Expand Down
11 changes: 5 additions & 6 deletions app/src/main/java/com/aice/chinamapview/NormalActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,13 @@ protected void onCreate(Bundle savedInstanceState) {
chinaMapModel = mBinding.map.getChinaMapModel();
mBinding.map.setScaleMin(1);
mBinding.map.setScaleMax(3);
mBinding.map.setOnProvinceClickLisener(new ChinaMapView.onProvinceClickLisener() {
@Override
public void onSelectProvince(String provinceName) {
mBinding.tvName.setText(provinceName);
}
});
mBinding.map.setOnProvinceClickLisener(provinceName -> mBinding.tvName.setText(provinceName));
mBinding.btnProvinceColor.setOnClickListener(this);
mBinding.btnBorderUnselectColor.setOnClickListener(this);
mBinding.btnBorderSelectColor.setOnClickListener(this);
mBinding.btnProvinceNameColor.setOnClickListener(this);
mBinding.checkboxProvinceName.setOnClickListener(this);
mBinding.checkboxProvinceMoveScale.setOnClickListener(this);
}

@Override
Expand Down Expand Up @@ -124,6 +120,9 @@ public void onColorPicked(int color) {
chinaMapModel.setShowName(mBinding.checkboxProvinceName.isChecked());
mBinding.map.notifyDataChanged();
break;
case R.id.checkbox_province_move_scale:
mBinding.map.setEnableScroll(!mBinding.checkboxProvinceMoveScale.isChecked());
break;
}
}
}
5 changes: 5 additions & 0 deletions app/src/main/res/layout/activity_normal.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@
android:layout_height="wrap_content"
android:id="@+id/checkbox_province_name"
android:text="是否展示省份名称"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkbox_province_move_scale"
android:text="不允许缩放和拖动,只允许点击"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public void setViewWidthAndHeight(int viewWidth, int viewHeight) {
this.viewHeight = viewHeight;
}

public boolean onTouchEvent(MotionEvent event) {
public boolean onTouchEvent(boolean enableScroll, MotionEvent event) {

switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
Expand All @@ -62,7 +62,7 @@ public boolean onTouchEvent(MotionEvent event) {
downY = event.getY();
onMoveDownX = event.getX();
onMoveDownY = event.getY();
isConsume = view.consumeEvent(event);
isConsume = view.consumeEvent(enableScroll,event);
if (onPromiseParentTouchListener != null) {
if (isConsume) {
view.getParent().requestDisallowInterceptTouchEvent(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,16 @@ public class ChinaMapView extends View {
private MyGestureDector myGestureDector;//拖动惯性滑动点击帮助类
private MyScaleGestureDetector scaleGestureDetector;
private onPromiseParentTouchListener onPromiseParentTouchListener;//是否允许父控件拦截事件
private boolean enableScroll;
private boolean enableTouch;

public void setEnableTouch(boolean enableTouch) {
this.enableTouch = enableTouch;
}

private boolean enableTouch;
public void setEnableScroll(boolean enableScroll) {
this.enableScroll = enableScroll;
}

public void setOnPromiseParentTouchListener(ChinaMapView.onPromiseParentTouchListener onPromiseParentTouchListener) {
this.onPromiseParentTouchListener = onPromiseParentTouchListener;
Expand Down Expand Up @@ -116,6 +120,7 @@ public ChinaMapView(Context context, @Nullable AttributeSet attrs, int defStyleA
chinaMapModel = new ChinaMapSvgUtil(context).getProvinces();
isFirst = true;
enableTouch = true;
enableScroll= true;
//初始化省份名字画笔
namePaint = new Paint();
namePaint.setAntiAlias(true);
Expand Down Expand Up @@ -351,7 +356,10 @@ protected void onDraw(Canvas canvas) {
}

//用于事件拦截,是否消费事件
public boolean consumeEvent(MotionEvent event) {
public boolean consumeEvent(boolean enableScroll, MotionEvent event) {
if (!enableScroll) {
return false;
}
boolean consume = false;
RectF rectF = getMatrixRectF();
//把坐标换算到初始坐标系,用于判断点击坐标是否在某个省份内
Expand All @@ -372,9 +380,11 @@ public boolean consumeEvent(MotionEvent event) {
@Override
public boolean onTouchEvent(MotionEvent event) {
if (enableTouch) {
scaleGestureDetector.onTouchEvent(event);
if (enableScroll) {
scaleGestureDetector.onTouchEvent(event);
}
if (!scaleGestureDetector.isInProgress()) {
myGestureDector.onTouchEvent(event);
myGestureDector.onTouchEvent(enableScroll, event);
}
return true;
} else {
Expand Down

0 comments on commit 609d2a7

Please sign in to comment.