回复
鸿蒙开源组件——ohos 三方库基础工具
jacksky
发布于 2021-11-5 15:00
浏览
0收藏
CommonTools
ohos 三方库基础工具,包括 toast, log, ohosext, utils 等
引入方式
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
}
}
implementation 'com.gitee.chinasoft_ohos:commontools:0.0.4-SNAPSHOT'
Timber log
特性:
- 自动带上当前类名称作为tag
- 支持多种日志路径同时输出,比如同时以HiLog和SystemOut方式输出(以及其他扩展方式,比如:文件、网络)
// 尽可能早初始化,一般放在 app 对象的 onInitialize 中 Timber.plant(new LogTree.HiLog()); //HiLog模拟器环境有时会丢失日志,可换用system.out输出,初始化方式: // Timber.plant(new LogTree.SystemOut()); // 日志打印举例 Timber.v("SayHello"); Timber.d("onPageStart, timeMs=%d", System.currentTimeMillis());
Toast
特性:外观可定制的 toast,默认外观为 AOSP 风格
先初始化,建议放在 app 对象的 onInitialize 中:Toast.init(getContext())
调用举例:Toast.show("I am a toast like AOSP")
utils
- AttrValue 自定义组件 xml 属性读取工具类
mText = AttrValue.get(attrSet, "text", ""); mTextBold = AttrValue.get(attrSet,"textBold", false); mTextSize = AttrValue.getDimension(attrSet, "textSize", AttrHelper.fp2px(16, getContext()));
- TouchHelper 将组件的触摸事件坐标值转换为相对自身的偏移量 详情参考
Kt2j - kotlin 转 java 便利工具
- 作用域扩展方法 KtExtensions 包括: apply, run, with, also, takeIf, takeUnless 等
- 其他扩展方法,包括
- ArrayExtension:slice
- IterableExtension: groupBy, getOrPut, joinToString
- ...
ohosext - 对 ohos api 的封装和补充
-
SimpleAsyncTask 使用方式和 AsyncTask 保持一致,没有 progress 进度参数
-
StringPreferences 解决 ohos Preferences 不支持存储超过8192个字符问题,使用方式类似 SharedPreferences
-
ValueAnimator 下面为差异化,或者补充功能的api,其余调用方法与鸿蒙保持一致,例如
start()
,cancel()
,setDuration
等
// Example1
// int和float差值动画
ValueAnimator animator = ValueAnimator.ofFloat(0, 1f);// ValueAnimator.ofInt(0, 100);
// component属性动画,支持旋转,缩放,平移,透明度
ValueAnimator animator = ValueAnimator.ofObject(view, 0, 1f,
ValueAnimator.Property.SCALE_X, ValueAnimator.Property.SCALE_Y);
// Example2
// int和float差值动画
ValueAnimator animator = new ValueAnimator();
animator.setFloatValues(0, 1f);// animator3.setIntValues(0, 100);
// component属性动画,支持旋转,缩放,平移,透明度
ValueAnimator animator = new ValueAnimator();
animator.setObjectProperties(view, 0, 1f,
ValueAnimator.Property.SCALE_X, ValueAnimator.Property.SCALE_Y);
// 设置循环模式
animator.setRepeatMode(ValueAnimator.RepeatMode.REVERSE);
// 设置循环次数
animator.setRepeatCount(AnimatorValue.INFINITE);
// 设置差值器
animator.setInterpolatorType(Animator.CurveType.ACCELERATE_DECELERATE);
// 设置动画值监听器
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(AnimatorValue animatorValue, float fraction, Object animatedValue) {
float value = (float) animatedValue;
// animatorValue: 鸿蒙的丐版属性动画
// fraction: 鸿蒙AnimatorValue的[0,1]
// animatedValue: 对应android的getAnimatedValue()
}
});
// 以当前为基准,反向执行动画
animator.reverse();
// 设置动画执行状态监听器
animator.addListener(new ValueAnimator.AnimatorListener() {
@Override
public void onAnimationStart(ValueAnimator animation) {
}
@Override
public void onAnimationEnd(ValueAnimator animation) {
}
@Override
public void onAnimationStop(ValueAnimator animation) {
}
@Override
public void onAnimationCancel(ValueAnimator animation) {
}
@Override
public void onAnimationRepeat(ValueAnimator animation) {
}
@Override
public void onAnimationPause(ValueAnimator animation) {
}
@Override
public void onAnimationResume(ValueAnimator animation) {
}
});
commontools-ohos-master.zip 118.75K 8次下载
已于2021-11-5 15:00:00修改
赞
收藏
回复
相关推荐