27 Commits
Author SHA1 Message Date
amos 6f59b83443 feat: 恢复完整首页界面布局和功能
Android Release / release (push) Successful in 50s
2026-06-03 00:22:53 +08:00
amos ca9388e334 fix: 添加应用图标引用到 AndroidManifest
Android Release / release (push) Successful in 47s
2026-06-03 00:12:24 +08:00
amos 43277c5c67 feat: 设置应用图标 (ARKJ)
Android Release / release (push) Successful in 49s
2026-06-03 00:04:54 +08:00
amos 3cc811cd8e debug: 添加网络调试和多 endpoint 尝试
Android Release / release (push) Successful in 43s
2026-06-02 23:55:22 +08:00
amos 56298d080f fix: 修复变量传递问题
Android Release / release (push) Failing after 35s
2026-06-02 23:50:57 +08:00
amos 5cafc3b41c fix: 使用 Authorization: Basic Auth 认证
Android Release / release (push) Failing after 28s
2026-06-02 23:48:10 +08:00
amos 8971e8885d fix: 简化 Release 流程,直接使用 Basic Auth
Android Release / release (push) Failing after 28s
2026-06-02 23:44:43 +08:00
amos 3505ece8ca fix: 使用 Basic Auth 方式创建 Release
Android Release / release (push) Failing after 33s
2026-06-02 23:33:41 +08:00
amos e6fd784d3b fix: 改进 Release 创建步骤的调试输出 2026-06-02 23:29:22 +08:00
amos 5e3a952ed6 fix: 使用 System.getenv 获取环境变量密码
Android Release / release (push) Failing after 27s
2026-06-02 23:26:18 +08:00
amos 30f336a3bc fix: 修正 keystore 路径为相对路径
Android Release / release (push) Failing after 24s
2026-06-02 23:23:09 +08:00
amos b71b03cee8 fix: 使用 Android 内置主题,移除 Material 依赖
Android Release / release (push) Failing after 25s
2026-06-02 23:19:57 +08:00
amos fc30779587 fix: 添加 repositories 配置修复依赖下载问题
Android Release / release (push) Failing after 20s
2026-06-02 23:17:42 +08:00
amos eefbd207bd fix: 添加 Material3 依赖修复主题问题
Android Release / release (push) Failing after 19s
2026-06-02 23:06:23 +08:00
CI Bot 0e114c81dc fix: 更新 build.gradle.signed 包名为 com.arkj.app
Android Release / release (push) Failing after 20s
2026-06-02 23:01:39 +08:00
CI Bot d33e45a280 fix: 添加 gradle.properties 配置修复 R 文件生成
Android Release / release (push) Failing after 28s
2026-06-02 22:58:55 +08:00
CI Bot 67ef5eb0cc test: 使用最简单的布局测试编译
Android Release / release (push) Failing after 28s
2026-06-02 22:49:58 +08:00
CI Bot d0b42566dc fix: 使用 ScrollView + LinearLayout 替代 GridLayout
Android Release / release (push) Failing after 31s
2026-06-02 22:45:16 +08:00
CI Bot 7c4e48f3bc fix: 添加 clean 任务确保完整构建
Android Release / release (push) Failing after 28s
2026-06-02 22:38:49 +08:00
CI Bot d5995ce4b1 fix: 更新包名为 com.arkj.app
Android Release / release (push) Failing after 27s
2026-06-02 22:35:25 +08:00
CI Bot 0e45fb4c3f fix: 简化布局文件,使用 LinearLayout 替代 ConstraintLayout
Android Release / release (push) Failing after 30s
2026-06-02 22:31:38 +08:00
CI Bot d1fd9e977e fix: 修复 ic_center_button.xml vector 格式
Android Release / release (push) Failing after 30s
2026-06-02 22:27:04 +08:00
CI Bot a098260bbe feat: 添加 ARKJ 主页面 UI - 8 个功能模块 + 底部导航
Android Release / release (push) Failing after 28s
2026-06-02 22:22:32 +08:00
CI Bot 0ef5b087e7 fix: 处理已存在的 Release
Android Release / release (push) Successful in 1m2s
2026-06-02 22:04:32 +08:00
CI Bot 76efebaa22 fix: 修复 APK 路径
Android Release / release (push) Failing after 36s
2026-06-02 21:59:20 +08:00
CI Bot 04da9abd31 fix: 强制使用 Java 17
Android Release / release (push) Failing after 38s
2026-06-02 21:39:43 +08:00
CI Bot bea4ed37b3 Add AndroidManifest.xml and basic files
Android Release / release (push) Failing after 53s
2026-06-02 21:29:58 +08:00
34 changed files with 732 additions and 28 deletions
+54 -17
View File
@@ -5,6 +5,9 @@ on:
tags:
- 'v*'
env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk
jobs:
release:
runs-on: android
@@ -13,11 +16,8 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java 17
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
java -version
- name: Verify Java
run: java -version
- name: Setup Keystore
run: |
@@ -37,24 +37,61 @@ jobs:
- name: Build Signed APK
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
run: |
export ANDROID_HOME=/opt/android-sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
gradle assembleRelease --no-daemon --stacktrace
gradle clean assembleRelease --no-daemon --stacktrace
VERSION=${GITHUB_REF#refs/tags/}
cp app/build/outputs/apk/release/app-release.apk app/build/outputs/apk/release/app-${VERSION}-signed.apk
echo "APK_NAME=app-${VERSION}-signed.apk" >> $GITHUB_ENV
APK_FILE="app/build/outputs/apk/release/app-${VERSION}-signed.apk"
cp app/build/outputs/apk/release/app-release.apk "$APK_FILE"
ls -lh "$APK_FILE"
echo "APK_FILE=$APK_FILE" >> $GITHUB_ENV
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Create Release
- name: Debug Network
run: |
VERSION=${GITHUB_REF#refs/tags/}
RESPONSE=$(curl -s -X POST "https://gitea.kg8.net/api/v1/repos/${{ github.repository }}/releases" -H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" -H "Content-Type: application/json" -d "{\"tag_name\":\"$VERSION\",\"name\":\"Release $VERSION\",\"draft\":false,\"prerelease\":false}")
RELEASE_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2)
echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV
echo "Testing network connectivity..."
ping -c 2 gitea.kg8.net || echo "ping failed"
curl -v "https://gitea.kg8.net/api/v1/version" 2>&1 | head -20 || echo "curl failed"
- name: Upload APK
- name: Create Release and Upload APK
env:
AUTH: ${{ secrets.AUTHB64 }}
VERSION: ${{ env.VERSION }}
APK_FILE: ${{ env.APK_FILE }}
REPO: ${{ github.repository }}
run: |
curl -s -X POST "https://gitea.kg8.net/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets" -H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" -F "attachment=@app/build/outputs/apk/release/${{ env.APK_NAME }}"
echo '✅ APK 上传成功!'
echo "Creating release for ${VERSION}..."
# 尝试不同的 API endpoint
for API_URL in "https://gitea.kg8.net/api/v1" "http://localhost:3000/api/v1" "http://127.0.0.1:3000/api/v1"; do
echo "Trying: ${API_URL}"
RESPONSE=$(curl -s -X POST "${API_URL}/repos/${REPO}/releases" \
-H "Authorization: Basic ${AUTH}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"${VERSION}\",\"name\":\"Release ${VERSION}\",\"draft\":false,\"prerelease\":false}" \
--connect-timeout 5)
echo "Response: ${RESPONSE}"
RELEASE_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2)
if [ -n "$RELEASE_ID" ]; then
echo "✅ Release 创建成功 (ID: ${RELEASE_ID}) via ${API_URL}"
# 上传 APK
echo "Uploading APK: ${APK_FILE}"
UPLOAD_RESPONSE=$(curl -s -X POST "${API_URL}/repos/${REPO}/releases/${RELEASE_ID}/assets" \
-H "Authorization: Basic ${AUTH}" \
-F "attachment=@${APK_FILE}")
echo "Upload Response: ${UPLOAD_RESPONSE}"
echo '✅ APK 上传成功!'
exit 0
fi
done
echo "❌ Failed to create release on all endpoints"
exit 1
+3 -5
View File
@@ -3,11 +3,11 @@ plugins {
}
android {
namespace 'com.example.newapp'
namespace 'com.arkj.app'
compileSdk 34
defaultConfig {
applicationId 'com.example.newapp'
applicationId 'com.arkj.app'
minSdk 24
targetSdk 34
versionCode 1
@@ -40,6 +40,4 @@ android {
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
}
}
+14 -6
View File
@@ -3,23 +3,33 @@ plugins {
}
android {
namespace 'com.example.newapp'
namespace 'com.arkj.app'
compileSdk 34
defaultConfig {
applicationId 'com.example.newapp'
applicationId com.arkj.app
minSdk 24
targetSdk 34
versionCode 1
versionName '1.0'
versionName 1.0
}
signingConfigs {
release {
storeFile file('/root/.android/release.keystore')
storePassword System.getProperty('KEYSTORE_PASSWORD')
keyAlias System.getProperty('KEY_ALIAS')
keyPassword System.getProperty('KEY_PASSWORD')
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
@@ -27,6 +37,4 @@ android {
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
}
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
@@ -0,0 +1,72 @@
package com.arkj.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 设置功能按钮点击事件
setupFunctionButtons();
// 设置底部导航点击事件
setupBottomNavigation();
}
private void setupFunctionButtons() {
// 备忘录
findViewById(R.id.btnMemo).setOnClickListener(v ->
Toast.makeText(this, "打开备忘录", Toast.LENGTH_SHORT).show());
// 二维码
findViewById(R.id.btnQRCode).setOnClickListener(v ->
Toast.makeText(this, "打开二维码扫描", Toast.LENGTH_SHORT).show());
// 谁在干活
findViewById(R.id.btnWhoWorking).setOnClickListener(v ->
Toast.makeText(this, "查看谁在干活", Toast.LENGTH_SHORT).show());
// PVE
findViewById(R.id.btnPVE).setOnClickListener(v ->
Toast.makeText(this, "打开 PVE", Toast.LENGTH_SHORT).show());
// 快递
findViewById(R.id.btnExpress).setOnClickListener(v ->
Toast.makeText(this, "查看快递", Toast.LENGTH_SHORT).show());
// 纪念日
findViewById(R.id.btnAnniversary).setOnClickListener(v ->
Toast.makeText(this, "查看纪念日", Toast.LENGTH_SHORT).show());
// 记账
findViewById(R.id.btnAccounting).setOnClickListener(v ->
Toast.makeText(this, "打开记账", Toast.LENGTH_SHORT).show());
// 资料
findViewById(R.id.btnMaterials).setOnClickListener(v ->
Toast.makeText(this, "查看资料", Toast.LENGTH_SHORT).show());
// 更多
findViewById(R.id.btnMore).setOnClickListener(v ->
Toast.makeText(this, "更多功能", Toast.LENGTH_SHORT).show());
}
private void setupBottomNavigation() {
// 首页
findViewById(R.id.navHome).setOnClickListener(v ->
Toast.makeText(this, "已在首页", Toast.LENGTH_SHORT).show());
// 中间按钮
findViewById(R.id.navCenter).setOnClickListener(v ->
Toast.makeText(this, "快速操作", Toast.LENGTH_SHORT).show());
// 我的
findViewById(R.id.navProfile).setOnClickListener(v ->
Toast.makeText(this, "打开个人中心", Toast.LENGTH_SHORT).show());
}
}
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF"/>
<corners android:radius="12dp"/>
</shape>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#66B3FF"/>
<corners android:radius="12dp"/>
</shape>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#4A90E2"
android:endColor="#F0F8FF"
android:angle="270"/>
</shape>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#1E3A8A"/>
</shape>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#F5F5F5"/>
<corners android:radius="8dp"/>
</shape>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF"/>
<corners android:radius="24dp"/>
</shape>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M19,3H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2zM9,17H7v-7h2v7zM13,17h-2V7h2v10zM17,17h-2v-4h2v4z"/>
</vector>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M19,3h-1V1h-2v2H8V1H6v2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2zM19,19H5V8h14v11z"/>
<path
android:fillColor="#FFFFFF"
android:pathData="M7,10h5v5H7z"/>
</vector>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="56"
android:viewportHeight="56">
<!-- 外圆 -->
<path
android:fillColor="#4A90E2"
android:pathData="M28,28m-24,0a24,24 0,1 1,48 0a24,24 0,1 1,-48 0"/>
<!-- 内圆高亮 -->
<path
android:fillColor="#66B3FF"
android:pathData="M28,28m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#4A90E2"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
</vector>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M4,6h16v12H4z"/>
<path
android:fillColor="#4A90E2"
android:pathData="M6,8h12v2H6zM6,11h12v2H6zM6,14h8v2H6z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M6,4h12v2H6V4zM6,9h12v2H6V9zM6,14h12v2H6V14z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#999999"
android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6 6,-2.69 6,-6 -2.69,-6 -6,-6zM12,16c-2.21,0 -4,-1.79 -4,-4s1.79,-4 4,-4 4,1.79 4,4 -1.79,4 -4,4z"/>
</vector>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M3,3h18v18H3V3zM5,5v14h14V5H5z"/>
<path
android:fillColor="#FFFFFF"
android:pathData="M7,7h4v4H7V7zM13,7h4v4h-4V7zM7,13h4v4H7v-4zM13,13h4v4h-4v-4z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM11,7h2v5h-5v2h5v5h2v-5h5v-2h-5V7z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF6B6B"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
</vector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
</vector>
+346
View File
@@ -0,0 +1,346 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bg_gradient">
<!-- 顶部搜索栏 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp"
android:gravity="center_vertical">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_speaker"
android:layout_marginEnd="12dp"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:background="@drawable/bg_search"
android:padding="10dp"
android:gravity="center_vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_search"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/search_hint"
android:textColor="#999"
android:layout_marginStart="8dp"/>
</LinearLayout>
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_scan"
android:layout_marginStart="12dp"/>
</LinearLayout>
<!-- 功能网格 -->
<GridLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:rowCount="3"
android:columnCount="3"
android:padding="16dp">
<!-- 备忘录 -->
<LinearLayout
android:id="@+id/btnMemo"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_memo"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/memo"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 二维码 -->
<LinearLayout
android:id="@+id/btnQRCode"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_qrcode"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/qrcode"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 谁在干活 -->
<LinearLayout
android:id="@+id/btnWhoWorking"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_star"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/who_working"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- PVE -->
<LinearLayout
android:id="@+id/btnPVE"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_pve"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pve"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 快递 -->
<LinearLayout
android:id="@+id/btnExpress"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_express"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/express"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 纪念日 -->
<LinearLayout
android:id="@+id/btnAnniversary"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_anniversary"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/anniversary"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 记账 -->
<LinearLayout
android:id="@+id/btnAccounting"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_accounting"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/accounting"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 资料 -->
<LinearLayout
android:id="@+id/btnMaterials"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_materials"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/materials"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
<!-- 更多 -->
<LinearLayout
android:id="@+id/btnMore"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/bg_function_icon"
android:layout_margin="8dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_more"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="更多"
android:textColor="#333"
android:layout_marginTop="4dp"/>
</LinearLayout>
</GridLayout>
<!-- 底部导航 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp"
android:background="@drawable/bg_menu_button">
<LinearLayout
android:id="@+id/navHome"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center"
android:padding="8dp">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_home_active"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/home"
android:textColor="#333"
android:layout_marginTop="2dp"/>
</LinearLayout>
<ImageView
android:id="@+id/navCenter"
android:layout_width="64dp"
android:layout_height="64dp"
android:src="@drawable/ic_center_button"
android:layout_marginHorizontal="16dp"/>
<LinearLayout
android:id="@+id/navProfile"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center"
android:padding="8dp">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_profile"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/profile"
android:textColor="#333"
android:layout_marginTop="2dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ARKJ</string>
<string name="home">首页</string>
<string name="profile">我的</string>
<string name="memo">备忘录</string>
<string name="qrcode">二维码</string>
<string name="who_working">谁在干活</string>
<string name="pve">PVE</string>
<string name="express">快递</string>
<string name="anniversary">纪念日</string>
<string name="accounting">记账</string>
<string name="materials">资料</string>
<string name="search_hint">请输入搜索内容</string>
<string name="message_hint">有什么需要可以留言哦。</string>
<string name="blog_title">🔥 博客</string>
<string name="no_articles">暂无文章</string>
</resources>
+4
View File
@@ -0,0 +1,4 @@
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
android.useAndroidX=false
android.enableResourceOptimizations=false
android.nonTransitiveRClass=false