/KCExtraImageView

很多时候要在文章中显示图片,也就是所谓的图文混排。图片有时比较大,需要切换到全屏显示。

Primary LanguageJava

Android KCExtraImageView

###如何引用此组件: 已经独立成maven项目,mvn install之后可以在项目maven添加以下依赖引用:

<dependency>
  <groupId>com.github.destinyd.kcextraimageview</groupId>
  <artifactId>kcextraimageview</artifactId>
  <version>0.1.0</version>
  <type>apklib</type>
</dependency>

###需求所需要方法说明

public void setDuration(int Duration){}

用于设置动画时间,单位毫秒

public void setScaleThresholdToFullscreen(float scaleThresholdToFullscreen);

用于设置缩放导致转到全屏显示的阙值

当悬浮模式缩放比例 大于 一般模式缩放比例 * 此阈值 时,动画转至全屏模式 当全屏模式缩放比例 小于 全屏模式最适缩放比例 * 此阈值 时,动画转至一般模式

public void setDistanceToDrag(float distanceToDrag);

用于设置上提进入悬浮模式的距离(distanceToDrag为像素), 默认为10.0

###注意事项 由于Android视图有自己的触摸操作的分发模式,所以当在复合视图中,会存在需要全屏操作图片时,触发其他视图的触摸操作。

因此我写了一个全屏拦截触摸事件的视图,以保证更好的体验效果。

但是有点小麻烦就是必须重写Activity的一些事件(如果只是单视图可以不需要)

@Override
protected void onResume() {
  super.onResume();
  KCTopestHookLayer topestHookLayer = KCTopestHookLayer.init(this);
  topestHookLayer.addHookView(findViewById(R.id.iv_image));
}

@Override
protected void onPause() {
  KCTopestHookLayer.clear(this);
  super.onPause();
}

其中 addHookView(View view); 为添加拦截对象

需要把所有KCExtraImageView对象都addHookView一遍

具体可以参考ExampleImagesActivity