简仿Path的商店表情弹出模块

<转自:简仿Path的商店表情弹出模块>

很简单的一个效果,我只实现了一个大致样式,需要的朋友可以拿到源码后自己修改布局。

Path真的是用户界面设计的标杆,做了很多很漂亮的细节处理。

先看一下样子:



关键代码就在于View的叠加和动画

[java]  view plain copy
  1. public class MainActivity extends Activity {  
  2.     RelativeLayout ll;  
  3.     LayoutInflater li;  
  4.   
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.   
  10.         WindowManager wm;  
  11.         ll = (RelativeLayout) findViewById(R.id.text);  
  12.         View rootView = getWindow().getDecorView().findViewById(  
  13.                 android.R.id.content);  
  14.         li = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  15.   
  16.         Button btn = (Button) findViewById(R.id.btns);  
  17.         btn.setOnClickListener(new OnClickListener() {  
  18.             @Override  
  19.             public void onClick(View arg0) {  
  20.                 click();  
  21.             }  
  22.         });  
  23.     }  
  24.   
  25.     private void click() {  
  26.         final View bgView = li.inflate(R.layout.ad_bg, null);  
  27.         LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,  
  28.                 LayoutParams.MATCH_PARENT);  
  29.         ll.addView(bgView, lp);  
  30.   
  31.         final View adView = li.inflate(R.layout.ad, null);  
  32.         RelativeLayout.LayoutParams lp4 = new RelativeLayout.LayoutParams(  
  33.                 ViewGroup.LayoutParams.WRAP_CONTENT,  
  34.                 ViewGroup.LayoutParams.WRAP_CONTENT);  
  35.         lp4.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);  
  36.         ll.addView(adView, lp4);  
  37.   
  38.         adView.startAnimation(AnimationUtils.loadAnimation(this,  
  39.                 R.anim.view_fade_in));  
  40.   
  41.         bgView.setOnClickListener(new OnClickListener() {  
  42.             @Override  
  43.             public void onClick(View v) {  
  44.                 Animation anim = AnimationUtils.loadAnimation(  
  45.                         MainActivity.this, R.anim.view_fade_out);  
  46.                 anim.setAnimationListener(new AnimationListener() {  
  47.   
  48.                     @Override  
  49.                     public void onAnimationStart(Animation arg0) {  
  50.   
  51.                     }  
  52.   
  53.                     @Override  
  54.                     public void onAnimationRepeat(Animation arg0) {  
  55.   
  56.                     }  
  57.   
  58.                     @Override  
  59.                     public void onAnimationEnd(Animation arg0) {  
  60.                         ll.removeView(adView);  
  61.                         ll.removeView(bgView);  
  62.                     }  
  63.                 });  
  64.                 adView.startAnimation(anim);  
  65.             }  
  66.         });  
  67.   
  68.         adView.setOnClickListener(new OnClickListener() {  
  69.             @Override  
  70.             public void onClick(View v) {  
  71.   
  72.             }  
  73.         });  
  74.     }  
  75.   
  76. }  


view_fade_in.xml

[java]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="25000"  
  6.         android:fromXDelta="-10.0%p"  
  7.         android:fromYDelta="-100.0%p"  
  8.         android:toXDelta="0.0"  
  9.         android:toYDelta="0.0" />  
  10.   
  11.     <rotate    
  12.         android:fromDegrees="-10"    
  13.         android:toDegrees="0"    
  14.         android:duration="25000"    
  15.         android:repeatCount="0"    
  16.         android:pivotX="50%"    
  17.         android:pivotY="50%" />    
  18. </set>  

view_fade_out.xml

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="15000"  
  6.         android:fromYDelta="0.0"  
  7.         android:toYDelta="100.0%p" />  
  8.   
  9. </set>  

源码下载:

http://download.youkuaiyun.com/detail/h3c4lenovo/6571147

### 利用微表情识别技术实现考试中防作弊的方法和系统 #### 微表情识别技术概述 微表情是指面部肌肉瞬间变化所表现出的情绪状态,通常持续时间极短(约1/25秒到1/5秒)。这些细微的表情变化往往不受意识控制,能够反映个体的真实情感反应。研究表明,通过分析测试者的微表情可以有效捕捉其心理状态的变化。 #### 考试环境下的应用原理 为了防止考生在考试过程中发生作弊行为,可以通过安装摄像头设备实时监控考场内的每一位考生,并运用计算机视觉算法对视频流数据进行处理。当监测到异常的微表情模式时,则可能意味着该生存在违规操作的风险。具体来说: - **情绪波动检测**:正常答题期间,学生的脸部表情应保持相对稳定;如果突然出现紧张、焦虑等强烈负面情绪的表现,则可能是遇到了难题或是正在进行不正当手段获取答案的行为[^1]。 - **注意力集中度评估**:长时间偏离试卷看向其他方向,或者频繁眨眼、皱眉等情况也可能暗示着分心或试图偷看他人答卷的动作。借助机器学习模型训练出专门针对此类特征提取的能力,有助于提高判断准确性。 #### 实现方案设计 构建一套完整的基于微表情识别技术的在线监考平台需考虑以下几个方面: - **硬件设施配置** - 高清网络摄像装置确保图像清晰度满足后续处理需求; - 合理布局多个视角覆盖整个教室空间,不留死角; - 噪音抑制麦克风采集声音信号辅助综合评判。 - **软件功能模块开发** - 数据预处理单元负责去除噪声干扰并调整光照条件等因素影响; - 特征点定位引擎精准锁定人脸轮廓及其内部结构位置; - 表情分类器采用深度神经网络架构完成最终预测任务; - 结果可视化界面直观展示疑似作弊事件预警提示信息给巡考人员查看确认。 ```python import cv2 from keras.models import load_model def detect_cheating_behavior(video_path, model_path): cap = cv2.VideoCapture(video_path) model = load_model(model_path) while True: ret, frame = cap.read() if not ret: break gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 进行人脸检测与特征点标注... face_landmarks = get_face_landmarks(gray_frame) input_data = preprocess(face_landmarks) prediction = model.predict(input_data)[0] if is_suspicious(prediction): alert_examiner() cap.release() ``` 上述代码片段展示了如何读取一段录像文件作为输入源,在每一帧画面里寻找是否存在可疑举动的过程。其中`get_face_landmarks()`函数用来标记出每张面孔的关键部位坐标以便进一步计算;而`preprocess()`则会按照特定格式整理成适合喂入已训练好的卷积神经网络的形式;最后由后者给出是否属于作弊倾向的概率估计值,一旦超过设定阈值即触发报警机制通知相关人员介入调查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值