Skip to content

Repository files navigation

openhal4a

安卓上仿制的Horion ArrayList界面

根据LGPL-v2.1许可证开源

工件和demo都在Releases中,demo源码在app模块下,由deepseek-v4-flash-release制作demo

画廊

gallery

安装

在Releases中下载aar,或者从Maven仓库拉取:

build.gradle.kts:

repositories {
    maven {
        url = uri("https://maven.1503dev.top/")
    }
}
dependencies {
    implementation("dev1503.openhal4a:openhal4a:1.0.1")
}

使用

组件使用纯代码控制属性,文档以Kotlin为例,组件本身兼容Java

添加组件

使用XML:

<dev1503.openhal4a.HorionArrayList
    android:id="@+id/arrayList"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

使用Kotlin:

val arrayList = HorionArrayList(context)

设置数据集

项目使用id+ArrayListItem对象管理一条数据,id为数据的唯一标识符

ArrayListItem结构:

class ArrayListItem @JvmOverloads constructor(
    var text: String,
    var keybind: String? = null,
    var modeText: String? = null,
    var category: Int = 0
)

设置数据集:

val data1 = ArrayListItem("功能名", "按键绑定字符串", "模式字符串", 分类数字ID)
val data2 = ArrayListItem("Killaura", "P", "Multi", 0)
val data3 = ArrayListItem("Reach", null, "3.50 Blocks", 1)

arrayList.setItem(0, data1)
arrayList.setItem(1, data2)
arrayList.setItem(2, data3)

移除数据:

arrayList.removeItem(0)
arrayList.removeItem(1)
arrayList.removeItem(2)

设置边框样式

样式枚举:

enum class ArrayListMode {
    NONE, // 无边框
    OUTLINE, // 全边框(默认)
    EDGE_LINE, // 仅边缘
    ROUNDED // 圆角边框(有bug)
}
arrayList.mode = ArrayListMode.OUTLINE

设置颜色

这里的颜色影响功能名按键绑定字符串边框颜色

样式枚举:

enum class ArrayListColor {
    RAINBOW, // 彩虹流动(默认)
    CATEGORIZED, // 按分类
    CUSTOM // 自定义颜色
}

设置样式:

arrayList.color = ArrayListColor.RAINBOW

设置自定义颜色(color = ArrayListColor.CUSTOM时生效):

arrayList.customColor = 0xFF123456.toInt()

设置分类id对应的颜色(color = ArrayListColor.CATEGORIZED时生效):

arrayList.setCategoryColor(category, color)
arrayList.setCategoryColor(0, 0xFF00FF00.toInt())

设置彩虹样式

样式枚举:

enum class ArrayListRainbow {
    PASTEL, // 轻彩(默认)
    SATURATED // 饱和
}
arrayList.rainbow = ArrayListRainbow.PASTEL

设置背景颜色

arrayList.backgroundColor = 0x9A000000.toInt()

设置文字大小(px)

arrayList.textSize = 14f

设置字体

arrayList.font = Typeface.DEFAULT

设置边框宽度(px)

arrayList.borderThickness = 1.4f

设置内边距(px)

arrayList.rowPadding = 6f

设置圆角半径(px)

arrayList.cornerRadius = 8f

设置重力

arrayList.gravity = Gravity.RIGHT or Gravity.TOP

设置触摸穿透

arrayList.touchModelEnabled = false // false为启用触摸穿透

动画选项

arrayList.itemClosingAnimationEnabled = true // 功能开关后的已有项目移动动画
arrayList.gravityChangingAnimationEnabled = false // 重力切换动画

显示选项

arrayList.showKeybinds = true // 显示按键绑定字符串
arrayList.showModes = true // 显示模式字符串
arrayList.textShadowEnabled = true // 显示文字阴影

About

安卓上仿制的Horion ArrayList组件库

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages