Skip to content

flynngoo/iToys-Core

Repository files navigation

iToys-Core

.
├── simple             App module.
│     └── keystore      签名文件 folder.
├── iToys-core          iToys Core.
│     ├── common        公共 module.
│     ├── download      下载 module.
│     ├── hybrid        网页 module.
│     ├── image         图片 module.
│     ├── logcat        日志 module.
│     ├── network       网络 module.
│     ├── pay           支付 module.
│     ├── permission    权限 module.
│     ├── scanning      扫描 module.
│     ├── share         分享 module.
│     ├── uikit         UI module.
│     ├── utils         工具类 module.
│     └── versions      版本控制 module.
└── iToys-plugin        iToys 插件.

按钮(Button)

按钮统一使用com.google.android.material.button.MaterialButton.

按钮样式:

  • @style/IToysAndroid.Button.Background
  • @style/IToysAndroid.Button.BackgroundTint

@style/IToysAndroid.Button.Background

通过设置android:background属性设置按钮背景,可使用drawableshape等, 一般用来设置渐变色按钮.

<com.google.android.material.button.MaterialButton 
    style="@style/IToysAndroid.Button.Background"
    android:background="@drawable/enterprise_renewal_variant_gradient" 
    android:id="@+id/renewal"
    android:layout_height="30dp" 
    android:layout_width="80dp"
    android:text="@string/enterprise_renewal" 
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintTop_toTopOf="parent" />

@style/IToysAndroid.Button.BackgroundTint

通过设置app:backgroundTint属性设置按钮背景颜色,只能使用color, 用来设置纯色按钮. 通过设置app:cornerRadius属性设置按钮圆角大小.

<com.google.android.material.button.MaterialButton
    android:id="@+id/package_increment"
    style="@style/IToysAndroid.Button.BackgroundTint"
    android:layout_width="56dp"
    android:layout_height="28dp"
    android:text="@string/enterprise_package_increment"
    android:textSize="12sp"
    app:backgroundTint="@color/uikit_colorful_54DD81"
    app:cornerRadius="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

文件上传(Upload)

  • 引用network Module.
implementation(projects.iToysCore.network)
  • 通过Hilt依赖注入:
/**
* 提供 七牛api
*/
@Provides
@Singleton
fun provideQiNiuApi() = QiNiuApi::class.java.toApiService()

/**
 * 提供 七牛 Upload Repository
 */
@Provides
@Singleton
fun provideQiNiuRepository() = QiNiuRepository(provideQiNiuApi())
  • ViewModel中使用:
@HiltViewModel
class HousingInformationViewModel @Inject constructor(
    private val qiNiuRepository: QiNiuRepository,
) : AbsViewModel<HousingInformationIntent, HousingInformationState>()


// 上传
launchOnIO {
    qiNiuRepository.uploadFile(
        File(intent.picture), // 文件
        Category.File,    // 文件类型 
        TokenType.Public, // 上传文件权限范围, Public(公开) or Private(私有)
        "test", // 可以为空字符串
        success = { logcat { "图片地址 -> $it" } }, // 上传成功回调, Public(公开): 完整的url地址, Private(私有): 上传的文件路径
        handleEx = {}, // 上传失败回调
    )
}

About

Android 常用工具封装.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published