添加基础表情控制
@ -5,20 +5,24 @@ import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.view.Window;
|
||||
import android.view.WindowInsets;
|
||||
import android.view.WindowInsetsController;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.util.Log;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.ismart.ib86.app.R;
|
||||
import com.ismart.ib86.feature.serial.SerialPort.ASR5515Protocol;
|
||||
import com.ismart.ib86.feature.serial.SerialPort.SerialPortHelper;
|
||||
import com.ismart.ib86.feature.gpio.GpioManager;
|
||||
@ -44,12 +48,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
private static final int BT_POWER_EN = 75;
|
||||
private ASR5515DeviceManager deviceManager;
|
||||
// 使用弱引用避免内存泄漏
|
||||
private Handler handler = new Handler(new Handler.Callback() {
|
||||
@Override
|
||||
public boolean handleMessage(@NonNull android.os.Message msg) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
private Runnable wearDetectionRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@ -65,15 +63,96 @@ public class MainActivity extends AppCompatActivity {
|
||||
private RelativeLayout mainLayout;
|
||||
private RobotEyesView robotEyesView;
|
||||
|
||||
// UI控件
|
||||
private ImageView ivFace;
|
||||
private Button btnPauseResume;
|
||||
private Button btnSwitchFace;
|
||||
private SeekBar seekBarSpeed;
|
||||
private TextView tvCurrentFace;
|
||||
private TextView tvSpeed;
|
||||
|
||||
// 动画管理器
|
||||
private RobotFaceAnimationManager animationManager;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
setContentView(R.layout.activity_robot_face);
|
||||
|
||||
// 初始化UI控件
|
||||
ivFace = (ImageView) this.findViewById(R.id.iv_face);
|
||||
// btnPauseResume = findViewById(R.id.btn_pause_resume);
|
||||
// btnSwitchFace = findViewById(R.id.btn_switch_face);
|
||||
// seekBarSpeed = findViewById(R.id.seek_bar_speed);
|
||||
// tvCurrentFace = findViewById(R.id.tv_current_face);
|
||||
// tvSpeed = findViewById(R.id.tv_speed);
|
||||
|
||||
// 初始化动画管理器
|
||||
animationManager = new RobotFaceAnimationManager(this, ivFace);
|
||||
|
||||
// 启动随机表情动画
|
||||
playRandomFaceAnimation();
|
||||
|
||||
// 每5秒自动切换一次表情
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
playRandomFaceAnimation();
|
||||
handler.postDelayed(this, 10000); // 10秒后再次执行
|
||||
}
|
||||
}, 5000);
|
||||
|
||||
// 设置暂停/继续按钮点击事件
|
||||
// btnPauseResume.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// boolean isPaused = animationManager.togglePause();
|
||||
// btnPauseResume.setText(isPaused ? "继续" : "暂停");
|
||||
// }
|
||||
// });
|
||||
|
||||
// // 设置切换表情按钮点击事件
|
||||
// btnSwitchFace.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// String faceName = animationManager.switchToNextFace();
|
||||
// tvCurrentFace.setText(faceName);
|
||||
// Toast.makeText(MainActivity.this, "已切换到: " + faceName, Toast.LENGTH_SHORT).show();
|
||||
// }
|
||||
// });
|
||||
|
||||
// // 设置速度调节滑块变化事件
|
||||
// seekBarSpeed.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||
// @Override
|
||||
// public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
// if (fromUser) {
|
||||
// // 将进度值(0-100)转换为速度因子(0.5-2.0)
|
||||
// float speedFactor = 0.5f + (progress / 100.0f) * 1.5f;
|
||||
// animationManager.setSpeed(speedFactor);
|
||||
// tvSpeed.setText(String.format("%.1fx", speedFactor));
|
||||
// }
|
||||
// }
|
||||
|
||||
mainLayout = findViewById(R.id.main_layout);
|
||||
mainLayout.setBackgroundColor(Color.BLACK);
|
||||
robotEyesView = new RobotEyesView(this);
|
||||
mainLayout.addView(robotEyesView);
|
||||
// @Override
|
||||
// public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
// // 不需要实现
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
// // 不需要实现
|
||||
// }
|
||||
// });
|
||||
|
||||
// // 初始化速度显示
|
||||
// tvSpeed.setText("1.0x");
|
||||
|
||||
// // 初始化表情名称显示
|
||||
// tvCurrentFace.setText(animationManager.getCurrentFaceName());
|
||||
|
||||
// mainLayout = findViewById(R.id.main_layout);
|
||||
// mainLayout.setBackgroundColor(Color.BLACK);
|
||||
// robotEyesView = new RobotEyesView(this);
|
||||
// mainLayout.addView(robotEyesView);
|
||||
|
||||
// 检查并请求必要的权限
|
||||
checkAndRequestPermissions();
|
||||
@ -84,12 +163,12 @@ public class MainActivity extends AppCompatActivity {
|
||||
initDeviceManager();
|
||||
|
||||
// 延迟2秒后开始测试,确保设备管理器初始化完成
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
startProtocolTests();
|
||||
}
|
||||
}, 2000);
|
||||
// handler.postDelayed(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// startProtocolTests();
|
||||
// }
|
||||
// }, 2000);
|
||||
}
|
||||
|
||||
private void initDeviceManager() {
|
||||
@ -249,40 +328,77 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
// 移除所有Handler消息和回调,避免内存泄漏
|
||||
if (handler != null) {
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
handler = null;
|
||||
}
|
||||
|
||||
// 移至后台线程执行耗时操作,避免ANR
|
||||
new Thread(() -> {
|
||||
try {
|
||||
// 停止所有测量
|
||||
if (deviceManager != null) {
|
||||
deviceManager.stopGH3220Measure(ASR5515Protocol.GH3220MeasureType.HR);
|
||||
deviceManager.stopGH3220Measure(ASR5515Protocol.GH3220MeasureType.SPO2);
|
||||
deviceManager.syncHostStatus(false);
|
||||
deviceManager.close();
|
||||
deviceManager = null;
|
||||
}
|
||||
|
||||
// 关闭GPIO电源
|
||||
if (gpioManager != null) {
|
||||
try {
|
||||
gpioManager.setValue(BT_POWER_EN, GpioManager.VALUE_LOW);
|
||||
} catch (Exception e) {
|
||||
LogManager.e(TAG, "关闭GPIO电源失败: " + e.getMessage());
|
||||
}
|
||||
gpioManager = null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LogManager.e(TAG, "资源释放过程中发生错误: " + e.getMessage());
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
// 移除所有Handler消息和回调,避免内存泄漏
|
||||
if (handler != null) {
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
handler = null;
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 释放动画管理器资源
|
||||
if (animationManager != null) {
|
||||
animationManager.release();
|
||||
animationManager = null;
|
||||
}
|
||||
|
||||
// 移至后台线程执行耗时操作,避免ANR
|
||||
new Thread(() -> {
|
||||
try {
|
||||
// 停止所有测量
|
||||
if (deviceManager != null) {
|
||||
deviceManager.stopGH3220Measure(ASR5515Protocol.GH3220MeasureType.HR);
|
||||
deviceManager.stopGH3220Measure(ASR5515Protocol.GH3220MeasureType.SPO2);
|
||||
deviceManager.syncHostStatus(false);
|
||||
deviceManager.close();
|
||||
deviceManager = null;
|
||||
}
|
||||
|
||||
// 关闭GPIO电源
|
||||
if (gpioManager != null) {
|
||||
try {
|
||||
gpioManager.setValue(BT_POWER_EN, GpioManager.VALUE_LOW);
|
||||
} catch (Exception e) {
|
||||
LogManager.e(TAG, "关闭GPIO电源失败: " + e.getMessage());
|
||||
}
|
||||
gpioManager = null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LogManager.e(TAG, "资源释放过程中发生错误: " + e.getMessage());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private Handler handler = new Handler();
|
||||
|
||||
/**
|
||||
* 随机播放一个表情动画
|
||||
*/
|
||||
private void playRandomFaceAnimation() {
|
||||
// 可用的表情动画类型数组
|
||||
int[] faceAnimations = {
|
||||
RobotFaceAnimationManager.FACE_LOOP_0,
|
||||
RobotFaceAnimationManager.FACE_LOOP_1,
|
||||
RobotFaceAnimationManager.FACE_LOOP_2,
|
||||
RobotFaceAnimationManager.FACE_LOOP_3,
|
||||
RobotFaceAnimationManager.FACE_LOOP_4,
|
||||
RobotFaceAnimationManager.FACE_HAPPY,
|
||||
RobotFaceAnimationManager.FACE_SAD
|
||||
};
|
||||
|
||||
// 随机选择一个表情
|
||||
int randomIndex = (int)(Math.random() * faceAnimations.length);
|
||||
int selectedAnimation = faceAnimations[randomIndex];
|
||||
|
||||
LogManager.d(TAG, "随机选择表情动画: " + selectedAnimation);
|
||||
|
||||
// 加载选中的动画
|
||||
if (animationManager != null) {
|
||||
animationManager.loadFaceAnimation(selectedAnimation);
|
||||
} else {
|
||||
LogManager.e(TAG, "动画管理器未初始化");
|
||||
}
|
||||
}
|
||||
|
||||
private void hideSystemBars() {
|
||||
Window window = getWindow();
|
||||
|
@ -0,0 +1,315 @@
|
||||
package com.ismart.ib86.app;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.AnimationDrawable;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
/**
|
||||
* 机器人表情动画管理器
|
||||
* 负责加载、控制和切换不同的表情动画
|
||||
*/
|
||||
public class RobotFaceAnimationManager {
|
||||
// 动画类型常量
|
||||
|
||||
public static final int FACE_LOOP_0 = 1; // 循环表情0
|
||||
public static final int FACE_LOOP_1 = 2; // 循环表情1
|
||||
public static final int FACE_LOOP_2 = 3; // 循环表情2
|
||||
public static final int FACE_LOOP_3 = 4; // 循环表情3
|
||||
public static final int FACE_LOOP_4 = 5; // 循环表情4
|
||||
public static final int FACE_HAPPY = 6; // 开心表情
|
||||
public static final int FACE_SAD = 7; // 悲伤表情
|
||||
|
||||
// 动画资源ID数组
|
||||
private static final int[] FACE_ANIMATIONS = {
|
||||
|
||||
R.drawable.anim_face_xunhuan, // 循环表情0
|
||||
R.drawable.anim_face_xunhuan1, // 循环表情1
|
||||
R.drawable.anim_face_xunhuan2, // 循环表情2
|
||||
R.drawable.anim_face_xunhuan3, // 循环表情3
|
||||
R.drawable.anim_face_xunhuan4, // 循环表情4
|
||||
R.drawable.anim_face_happy, // 开心表情
|
||||
R.drawable.anim_face_sad // 悲伤表情
|
||||
};
|
||||
|
||||
// 表情名称数组(用于日志)
|
||||
private static final String[] FACE_NAMES = {
|
||||
"循环表情0",
|
||||
"循环表情1",
|
||||
"循环表情2",
|
||||
"循环表情3",
|
||||
"循环表情4",
|
||||
"开心表情",
|
||||
"悲伤表情"
|
||||
};
|
||||
|
||||
private Context context;
|
||||
private ImageView imageView;
|
||||
private AnimationDrawable currentAnimation;
|
||||
private int currentFaceType = FACE_LOOP_0;
|
||||
private boolean isPaused = false;
|
||||
private float speedFactor = 0.5f; // 速度因子,1.0表示正常速度
|
||||
private Handler handler;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
* @param context 上下文
|
||||
* @param imageView 用于显示动画的ImageView
|
||||
*/
|
||||
public RobotFaceAnimationManager(Context context, ImageView imageView) {
|
||||
this.context = context;
|
||||
this.imageView = imageView;
|
||||
this.handler = new Handler(Looper.getMainLooper());
|
||||
}
|
||||
|
||||
private static final String TAG = "RobotFaceAnimManager";
|
||||
|
||||
/**
|
||||
* 加载指定类型的表情动画
|
||||
* @param faceType 表情类型
|
||||
*/
|
||||
public void loadFaceAnimation(int faceType) {
|
||||
if (faceType < 0 || faceType >= FACE_ANIMATIONS.length) {
|
||||
faceType = FACE_LOOP_0;
|
||||
}
|
||||
|
||||
currentFaceType = faceType;
|
||||
|
||||
try {
|
||||
// 停止当前动画
|
||||
if (currentAnimation != null && currentAnimation.isRunning()) {
|
||||
currentAnimation.stop();
|
||||
}
|
||||
|
||||
// 加载新动画
|
||||
currentAnimation = (AnimationDrawable) ContextCompat.getDrawable(
|
||||
context,
|
||||
FACE_ANIMATIONS[faceType]
|
||||
);
|
||||
|
||||
if (currentAnimation == null) {
|
||||
Log.e(TAG, "无法加载表情动画资源: " + FACE_NAMES[faceType]);
|
||||
return;
|
||||
}
|
||||
|
||||
// 应用速度设置
|
||||
if (speedFactor != 1.0f) {
|
||||
applySpeed(speedFactor);
|
||||
}
|
||||
|
||||
// 设置动画到ImageView
|
||||
imageView.setImageDrawable(currentAnimation);
|
||||
|
||||
// 如果不是暂停状态,则开始播放
|
||||
if (!isPaused) {
|
||||
currentAnimation.start();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "加载表情动画失败: " + FACE_NAMES[faceType], e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始播放当前动画
|
||||
*/
|
||||
public void start() {
|
||||
if (currentAnimation != null && !currentAnimation.isRunning()) {
|
||||
currentAnimation.start();
|
||||
isPaused = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 暂停当前动画
|
||||
*/
|
||||
public void pause() {
|
||||
if (currentAnimation != null && currentAnimation.isRunning()) {
|
||||
Log.d(TAG, "暂停表情动画: " + FACE_NAMES[currentFaceType]);
|
||||
currentAnimation.stop();
|
||||
isPaused = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 继续播放当前动画
|
||||
*/
|
||||
public void resume() {
|
||||
if (currentAnimation != null && isPaused) {
|
||||
Log.d(TAG, "恢复表情动画: " + FACE_NAMES[currentFaceType]);
|
||||
currentAnimation.start();
|
||||
isPaused = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换暂停/继续状态
|
||||
* @return 当前是否为暂停状态
|
||||
*/
|
||||
public boolean togglePause() {
|
||||
if (isPaused) {
|
||||
Log.d(TAG, "尝试恢复表情动画: " + FACE_NAMES[currentFaceType]);
|
||||
resume();
|
||||
} else {
|
||||
Log.d(TAG, "尝试暂停表情动画: " + FACE_NAMES[currentFaceType]);
|
||||
pause();
|
||||
}
|
||||
return isPaused;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置动画播放速度
|
||||
* @param factor 速度因子,1.0为正常速度,小于1.0变慢,大于1.0变快
|
||||
*/
|
||||
public void setSpeed(float factor) {
|
||||
if (factor <= 0) {
|
||||
factor = 0.5f; // 最小速度限制
|
||||
} else if (factor > 3.0f) {
|
||||
factor = 3.0f; // 最大速度限制
|
||||
}
|
||||
|
||||
speedFactor = factor;
|
||||
|
||||
if (currentAnimation != null) {
|
||||
// 记住当前是否正在运行
|
||||
boolean wasRunning = currentAnimation.isRunning();
|
||||
|
||||
// 如果正在运行,先停止
|
||||
if (wasRunning) {
|
||||
currentAnimation.stop();
|
||||
}
|
||||
|
||||
// 应用新的速度
|
||||
applySpeed(speedFactor);
|
||||
|
||||
// 如果之前在运行,则重新开始
|
||||
if (wasRunning && !isPaused) {
|
||||
currentAnimation.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用速度设置到动画
|
||||
* @param factor 速度因子
|
||||
*/
|
||||
private void applySpeed(float factor) {
|
||||
if (currentAnimation == null) return;
|
||||
|
||||
// 创建新的AnimationDrawable
|
||||
AnimationDrawable newAnimation = new AnimationDrawable();
|
||||
|
||||
// 获取帧数
|
||||
int frameCount = currentAnimation.getNumberOfFrames();
|
||||
|
||||
// 默认帧持续时间(毫秒)
|
||||
int defaultDuration = 33; // 约30fps
|
||||
|
||||
// 计算新的帧持续时间
|
||||
int newDuration = (int)(defaultDuration / factor);
|
||||
|
||||
// 复制所有帧到新动画,并设置新的持续时间
|
||||
for (int i = 0; i < frameCount; i++) {
|
||||
newAnimation.addFrame(currentAnimation.getFrame(i), newDuration);
|
||||
}
|
||||
|
||||
// 设置循环属性与原动画相同
|
||||
newAnimation.setOneShot(currentAnimation.isOneShot());
|
||||
|
||||
// 更新当前动画
|
||||
currentAnimation = newAnimation;
|
||||
|
||||
// 更新ImageView的drawable
|
||||
imageView.setImageDrawable(currentAnimation);
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换到下一个表情
|
||||
* @return 新表情的名称
|
||||
*/
|
||||
public String switchToNextFace() {
|
||||
int nextFace = (currentFaceType + 1) % FACE_ANIMATIONS.length;
|
||||
Log.d(TAG, "切换到下一个表情: " + FACE_NAMES[currentFaceType] + " -> " + FACE_NAMES[nextFace]);
|
||||
loadFaceAnimation(nextFace);
|
||||
return FACE_NAMES[nextFace];
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换到指定表情
|
||||
* @param faceType 表情类型
|
||||
* @return 表情名称
|
||||
*/
|
||||
public String switchToFace(int faceType) {
|
||||
if (faceType < 0 || faceType >= FACE_ANIMATIONS.length) {
|
||||
Log.w(TAG, "无效的表情类型: " + faceType + ",使用默认表情");
|
||||
faceType = FACE_LOOP_0;
|
||||
}
|
||||
|
||||
if (faceType != currentFaceType) {
|
||||
Log.d(TAG, "切换表情: " + FACE_NAMES[currentFaceType] + " -> " + FACE_NAMES[faceType]);
|
||||
}
|
||||
|
||||
loadFaceAnimation(faceType);
|
||||
return FACE_NAMES[faceType];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前表情类型
|
||||
* @return 表情类型
|
||||
*/
|
||||
public int getCurrentFaceType() {
|
||||
return currentFaceType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前表情名称
|
||||
* @return 表情名称
|
||||
*/
|
||||
public String getCurrentFaceName() {
|
||||
return FACE_NAMES[currentFaceType];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前速度因子
|
||||
* @return 速度因子
|
||||
*/
|
||||
public float getSpeedFactor() {
|
||||
return speedFactor;
|
||||
}
|
||||
|
||||
/**
|
||||
* 延迟加载表情动画
|
||||
* @param faceType 表情类型
|
||||
* @param delayMillis 延迟时间(毫秒)
|
||||
*/
|
||||
public void loadFaceAnimationDelayed(final int faceType, long delayMillis) {
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
loadFaceAnimation(faceType);
|
||||
}
|
||||
}, delayMillis);
|
||||
}
|
||||
|
||||
/**
|
||||
* 释放资源
|
||||
*/
|
||||
public void release() {
|
||||
if (currentAnimation != null && currentAnimation.isRunning()) {
|
||||
currentAnimation.stop();
|
||||
}
|
||||
|
||||
if (handler != null) {
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
}
|
||||
|
||||
currentAnimation = null;
|
||||
context = null;
|
||||
imageView = null;
|
||||
handler = null;
|
||||
}
|
||||
}
|
83
app/src/main/res/drawable/anim_face_happy.xml
Normal file
@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<!-- 使用现有图片的子集,模拟快乐表情,使用较快的帧率 -->
|
||||
<item android:drawable="@drawable/smile_000" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_001" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_002" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_003" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_004" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_005" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_006" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_007" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_008" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_009" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_010" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_011" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_012" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_013" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_014" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_015" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_016" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_017" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_018" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_019" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_020" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_021" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_022" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_023" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_024" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_025" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_026" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_027" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_028" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_029" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_030" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_031" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_032" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_033" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_034" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_035" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_036" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_037" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_038" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_039" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_040" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_041" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_042" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_043" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_044" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_045" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_046" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_047" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_048" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_049" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_050" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_051" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_052" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_053" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_054" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_055" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_056" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_057" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_058" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_059" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_060" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_061" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_062" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_063" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_064" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_065" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_066" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_067" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_068" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_069" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_070" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_071" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_072" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_073" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_074" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_075" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_076" android:duration="33"/>
|
||||
<item android:drawable="@drawable/smile_077" android:duration="33"/>
|
||||
</animation-list>
|
150
app/src/main/res/drawable/anim_face_sad.xml
Normal file
@ -0,0 +1,150 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<!-- 使用现有图片的子集,模拟悲伤表情,使用较慢的帧率 -->
|
||||
<item android:drawable="@drawable/wunai000" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai001" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai002" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai003" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai004" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai005" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai006" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai007" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai008" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai009" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai010" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai011" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai012" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai013" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai014" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai015" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai016" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai017" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai018" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai019" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai020" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai021" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai022" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai023" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai024" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai025" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai026" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai027" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai028" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai029" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai030" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai031" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai032" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai033" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai034" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai035" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai036" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai037" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai038" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai039" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai040" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai041" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai042" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai043" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai044" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai045" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai046" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai047" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai048" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai049" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai050" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai051" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai052" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai053" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai054" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai055" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai056" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai057" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai058" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai059" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai060" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai061" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai062" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai063" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai064" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai065" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai066" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai067" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai068" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai069" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai070" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai071" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai072" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai073" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai074" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai075" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai076" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai077" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai078" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai079" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai080" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai081" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai082" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai083" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai084" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai085" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai086" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai087" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai088" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai089" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai090" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai091" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai092" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai093" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai094" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai095" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai096" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai097" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai098" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai099" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai100" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai101" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai102" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai103" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai104" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai105" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai106" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai107" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai108" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai109" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai110" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai111" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai112" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai113" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai114" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai115" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai116" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai117" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai118" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai119" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai120" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai121" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai122" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai123" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai124" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai125" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai126" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai127" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai128" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai129" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai130" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai131" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai132" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai133" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai134" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai135" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai136" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai137" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai138" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai139" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai140" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai141" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai142" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai143" android:duration="33"/>
|
||||
<item android:drawable="@drawable/wunai144" android:duration="33"/>
|
||||
</animation-list>
|
244
app/src/main/res/drawable/anim_face_xunhuan.xml
Normal file
@ -0,0 +1,244 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<item android:drawable="@drawable/xunhuan_00000" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00001" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00002" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00003" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00004" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00005" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00006" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00007" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00008" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00009" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00010" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00011" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00012" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00013" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00014" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00015" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00016" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00017" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00018" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00019" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00020" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00021" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00022" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00023" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00024" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00025" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00026" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00027" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00028" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00029" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00030" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00031" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00032" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00033" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00034" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00035" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00036" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00037" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00038" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00039" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00040" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00041" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00042" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00043" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00044" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00045" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00046" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00047" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00048" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00049" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00050" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00051" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00052" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00053" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00054" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00055" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00056" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00057" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00058" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00059" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00060" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00061" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00062" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00063" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00064" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00065" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00066" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00067" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00068" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00069" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00070" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00071" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00072" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00073" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00074" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00075" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00076" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00077" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00078" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00079" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00080" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00081" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00082" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00083" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00084" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00085" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00086" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00087" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00088" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00089" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00090" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00091" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00092" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00093" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00094" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00095" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00096" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00097" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00098" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00099" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00100" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00101" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00102" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00103" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00104" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00105" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00106" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00107" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00108" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00109" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00110" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00111" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00112" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00113" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00114" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00115" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00116" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00117" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00118" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00119" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00120" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00121" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00122" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00123" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00124" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00125" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00126" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00127" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00128" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00129" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00130" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00131" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00132" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00133" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00134" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00135" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00136" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00137" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00138" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00139" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00140" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00141" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00142" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00143" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00144" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00145" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00146" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00147" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00148" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00149" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00150" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00151" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00152" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00153" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00154" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00155" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00156" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00157" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00158" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00159" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00160" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00161" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00162" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00163" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00164" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00165" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00166" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00167" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00168" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00169" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00170" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00171" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00172" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00173" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00174" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00175" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00176" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00177" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00178" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00179" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00180" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00181" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00182" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00183" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00184" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00185" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00186" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00187" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00188" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00189" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00190" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00191" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00192" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00193" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00194" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00195" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00196" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00197" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00198" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00199" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00200" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00201" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00202" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00203" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00204" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00205" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00206" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00207" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00208" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00209" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00210" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00211" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00212" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00213" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00214" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00215" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00216" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00217" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00218" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00219" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00220" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00221" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00222" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00223" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00224" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00225" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00226" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00227" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00228" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00229" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00230" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00231" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00232" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00233" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00234" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00235" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00236" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00237" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00238" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuan_00239" android:duration="33"/>
|
||||
</animation-list>
|
68
app/src/main/res/drawable/anim_face_xunhuan1.xml
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<!-- 使用现有图片的子集,模拟正常表情,使用中等帧率 -->
|
||||
<item android:drawable="@drawable/xunhuandaiji0200" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0201" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0202" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0203" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0204" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0205" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0206" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0207" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0208" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0209" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0210" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0211" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0212" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0213" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0214" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0215" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0216" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0217" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0218" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0219" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0220" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0221" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0222" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0223" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0224" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0225" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0226" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0227" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0228" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0229" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0230" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0231" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0232" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0233" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0234" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0235" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0236" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0237" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0238" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0239" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0240" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0241" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0242" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0243" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0244" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0245" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0246" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0247" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0248" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0249" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0250" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0251" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0252" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0253" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0254" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0255" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0256" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0257" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0258" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0259" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0260" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0261" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0262" android:duration="33"/>
|
||||
</animation-list>
|
32
app/src/main/res/drawable/anim_face_xunhuan2.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<item android:drawable="@drawable/xunhuandaiji0200" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0201" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0202" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0203" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0204" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0205" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0206" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0207" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0208" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0209" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0210" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0211" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0212" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0213" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0214" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0215" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0216" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0217" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0218" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0219" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0222" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0223" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0224" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0225" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0226" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0227" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0228" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0229" android:duration="33"/>
|
||||
</animation-list>
|
19
app/src/main/res/drawable/anim_face_xunhuan3.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<item android:drawable="@drawable/xunhuandaiji0300" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0301" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0302" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0303" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0304" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0305" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0306" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0307" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0308" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0309" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0310" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0311" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0312" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji0313" android:duration="33"/>
|
||||
</animation-list>
|
||||
|
134
app/src/main/res/drawable/anim_face_xunhuan4.xml
Normal file
@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:oneshot="false">
|
||||
<item android:drawable="@drawable/xunhuandaiji04000" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04001" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04002" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04003" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04004" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04005" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04006" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04007" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04008" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04009" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04010" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04011" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04012" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04013" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04014" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04015" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04016" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04017" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04018" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04019" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04020" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04021" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04022" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04023" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04024" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04025" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04026" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04027" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04028" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04029" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04030" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04031" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04032" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04033" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04034" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04035" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04036" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04037" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04038" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04039" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04040" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04041" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04042" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04043" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04044" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04045" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04046" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04047" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04048" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04049" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04050" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04051" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04052" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04053" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04054" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04055" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04056" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04057" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04058" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04059" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04060" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04061" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04062" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04063" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04064" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04065" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04066" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04067" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04068" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04069" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04070" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04071" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04072" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04073" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04074" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04075" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04076" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04077" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04078" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04079" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04080" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04081" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04082" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04083" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04084" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04085" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04086" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04087" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04088" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04089" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04090" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04091" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04092" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04093" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04094" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04095" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04096" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04097" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04098" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04099" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04100" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04101" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04102" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04103" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04104" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04105" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04106" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04107" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04108" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04109" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04110" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04111" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04112" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04113" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04114" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04115" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04116" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04117" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04118" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04119" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04120" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04121" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04122" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04123" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04124" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04125" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04126" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04127" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04128" android:duration="33"/>
|
||||
<item android:drawable="@drawable/xunhuandaiji04129" android:duration="33"/>
|
||||
</animation-list>
|
BIN
app/src/main/res/drawable/smile_000.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_001.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
app/src/main/res/drawable/smile_002.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
app/src/main/res/drawable/smile_003.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
app/src/main/res/drawable/smile_004.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
app/src/main/res/drawable/smile_005.png
Normal file
After Width: | Height: | Size: 899 B |
BIN
app/src/main/res/drawable/smile_006.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_007.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_008.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_009.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
app/src/main/res/drawable/smile_010.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
app/src/main/res/drawable/smile_011.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
app/src/main/res/drawable/smile_012.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
app/src/main/res/drawable/smile_013.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
app/src/main/res/drawable/smile_014.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
app/src/main/res/drawable/smile_015.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
app/src/main/res/drawable/smile_016.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_017.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_018.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_019.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_020.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_021.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_022.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_023.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_024.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_025.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_026.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_027.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_028.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_029.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_030.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_031.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_032.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_033.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_034.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_035.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_036.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_037.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_038.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_039.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_040.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_041.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_042.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_043.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_044.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_045.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_046.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_047.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_048.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_049.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_050.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_051.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_052.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_053.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_054.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_055.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_056.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_057.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_058.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_059.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
app/src/main/res/drawable/smile_060.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable/smile_061.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_062.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_063.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_064.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_065.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_066.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
app/src/main/res/drawable/smile_067.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
app/src/main/res/drawable/smile_068.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
app/src/main/res/drawable/smile_069.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
app/src/main/res/drawable/smile_070.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
app/src/main/res/drawable/smile_071.png
Normal file
After Width: | Height: | Size: 899 B |
BIN
app/src/main/res/drawable/smile_072.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_073.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_074.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_075.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_076.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/smile_077.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/wunai000.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/wunai001.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/wunai002.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/wunai003.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/wunai004.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
app/src/main/res/drawable/wunai005.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
app/src/main/res/drawable/wunai006.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
app/src/main/res/drawable/wunai007.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
app/src/main/res/drawable/wunai008.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
app/src/main/res/drawable/wunai009.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
app/src/main/res/drawable/wunai010.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
app/src/main/res/drawable/wunai011.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
app/src/main/res/drawable/wunai012.png
Normal file
After Width: | Height: | Size: 3.1 KiB |