很多App都有扫描二维码功能,扫描的时候会有一个移动的扫描线,看起来很好实现,不过我网上搜了搜很多方法都是实时绘制出来的,计算点的位置然后重绘出来。我的第一感觉是完全没必要,其实这个东西本质上就是一张贴图加一个平移动画效果,所以就自己做了一个小小例子。
首先是扫描线的素材,这个是直接从微信apk里面扒出来的(其实你如果看中某个App的界面中的某个素材,可以直接下载apk,后缀改成zip解压,然后在里面慢慢找,一般都能找到png图片)。
然后贴出布局文件代码:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/activity_main"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="com.example.user.myapplication.MainActivity">
- <View
- android:id="@+id/previewView"
- android:layout_width="300dp"
- android:layout_height="300dp"
- android:layout_centerInParent="true"
- android:background="@color/colorPrimary"/>
- <ImageView
- android:id="@+id/scanHorizontalLineImageView"
- android:layout_width="300dp"
- android:layout_height="wrap_content"
- android:src="@drawable/horizontal_line" />
- <ImageView
- android:id="@+id/scanVerticalLineImageView"
- android:layout_width="wrap_content"
- android:layout_height="300dp"
- android:src="@drawable/vertical_line"/>
- </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.user.myapplication.MainActivity">
<View
android:id="@+id/previewView"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerInParent="true"
android:background="@color/colorPrimary"/>
<ImageView
android:id="@+id/scanHorizontalLineImageView"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:src="@drawable/horizontal_line" />
<ImageView
android:id="@+id/scanVerticalLineImageView"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:src="@drawable/vertical_line"/>
复制代码
</RelativeLayout>
界面很简单,previewView主要是用来模拟拍照的预览图,这个预览图提供了动画定位信息,接下来代码会讲。下面是核心代码:- public class MainActivity extends AppCompatActivity {
- private ImageView mScanHorizontalLineImageView;
- private ImageView mScanVerticalLineImageView;
- private View mPreviewView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mScanHorizontalLineImageView = (ImageView) findViewById(R.id.scanHorizontalLineImageView);
- mScanVerticalLineImageView = (ImageView) findViewById(R.id.scanVerticalLineImageView);
- mPreviewView = findViewById(R.id.previewView);
- }
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- super.onWindowFocusChanged(hasFocus);
- int[] location = new int[2];
- // getLocationInWindow方法要在onWindowFocusChanged方法里面调用
- // 个人理解是onCreate时,View尚未被绘制,因此无法获得具体的坐标点
- mPreviewView.getLocationInWindow(location);
- // 模拟的mPreviewView的左右上下坐标坐标
- int left = mPreviewView.getLeft();
- int right = mPreviewView.getRight();
- int top = mPreviewView.getTop();
- int bottom = mPreviewView.getBottom();
- // 从上到下的平移动画
- Animation verticalAnimation = new TranslateAnimation(left, left, top, bottom);
- verticalAnimation.setDuration(3000); // 动画持续时间
- verticalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环
- // 播放动画
- mScanHorizontalLineImageView.setAnimation(verticalAnimation);
- verticalAnimation.startNow();
- // 从左到右的平移动画
- Animation horizontalAnimation = new TranslateAnimation(left, right, top, top);
- horizontalAnimation.setDuration(3000); // 动画持续时间
- horizontalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环
- //播放动画
- mScanVerticalLineImageView.setAnimation(horizontalAnimation);
- horizontalAnimation.startNow();
- }
- }
public class MainActivity extends AppCompatActivity {
private ImageView mScanHorizontalLineImageView;
private ImageView mScanVerticalLineImageView;
private View mPreviewView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mScanHorizontalLineImageView = (ImageView) findViewById(R.id.scanHorizontalLineImageView);
mScanVerticalLineImageView = (ImageView) findViewById(R.id.scanVerticalLineImageView);
mPreviewView = findViewById(R.id.previewView);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
int[] location = new int[2];
// getLocationInWindow方法要在onWindowFocusChanged方法里面调用
// 个人理解是onCreate时,View尚未被绘制,因此无法获得具体的坐标点
mPreviewView.getLocationInWindow(location);
// 模拟的mPreviewView的左右上下坐标坐标
int left = mPreviewView.getLeft();
int right = mPreviewView.getRight();
int top = mPreviewView.getTop();
int bottom = mPreviewView.getBottom();
// 从上到下的平移动画
Animation verticalAnimation = new TranslateAnimation(left, left, top, bottom);
verticalAnimation.setDuration(3000); // 动画持续时间
verticalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环
// 播放动画
mScanHorizontalLineImageView.setAnimation(verticalAnimation);
verticalAnimation.startNow();
// 从左到右的平移动画
Animation horizontalAnimation = new TranslateAnimation(left, right, top, top);
horizontalAnimation.setDuration(3000); // 动画持续时间
horizontalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环
//播放动画
mScanVerticalLineImageView.setAnimation(horizontalAnimation);
horizontalAnimation.startNow();
}
复制代码
}
最后的效果大概就是这个样子的:
其实扫描识别二维码这个东西,个人理解就是照相机得到的帧不停地塞给图像处理模块,然后等待图像处理模块回调。
- 本文已收录于以下专栏:
-
-
qq_29295665
2017-04-01 18:06 1楼 -
https://github.com/youxin11544/Zxing-Scan-Anim
-
<div class="more_comment" style="display: block;">
<div id="comment_bar" class="trackgin-ad" data-mod="popu_385" style="display: none;"><a id="load_comments" class="btn btn-large more_comment_btn" page="2">查看 <span>1</span> 条热评<i class="icon iconfont icon-xiajiantou"></i></a></div>
</div>
<!-- <h3 class="recommend_tit" id="related">相关文章推荐</h3> -->
<div class="recommend_list clearfix" id="rasss">
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="true" data-dsm="post">
<a href="http://blog.csdn.net/jackli_git/article/details/60888844" target="_blank" strategy="BlogCommendFromBaidu_0">
<dd class="clearfix">
<h2 class="" style="margin-bottom: 0px;">Android自定义控件之扫描动画UI</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/5/5/E/3_jackli_git.jpg" alt="jackli_git" title="jackli_git"></li>
<li class="user_name">jackli_git</li>
<li class="time">2017年03月08日 23:53</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>366</span></li>
</ul><div class="summary">
前言最近有一个需求,就是做一个扫描的UI,看了很多扫描动画,发现酷狗的扫描动画挺漂亮的,所以就做了一个相似的扫描动画,废话不多说,先看一下最终的效果吧。
复制代码
最终效果图介绍首先我们看一下这个效果,它由以...
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="true" data-dsm="post">
<a href="http://blog.csdn.net/oxygen0106/article/details/40144781" target="_blank" strategy="BlogCommendFromBaidu_1">
<dd class="clearfix">
<h2 class="" style="margin-bottom: 0px;">Android自定义View实现雷达扫描动画</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/0/0/D/3_oxygen0106.jpg" alt="oxygen0106" title="oxygen0106"></li>
<li class="user_name">oxygen0106</li>
<li class="time">2014年10月16日 10:58</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>3672</span></li>
</ul><div class="summary">
在最近的项目中有用到雷达动画,于是 </div>
</dd>
</a>
</dl>
<dl class="">
<script>
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div id="' + s + '"></div>');
(window.slotbydup=window.slotbydup || []).push({
id: '4765209',
container: s,
size: '808,120',
display: 'inlay-fix'
});
})();
</script><div id="_locxtxfgw9"></div><script charset="utf-8" src="http://pos.baidu.com/scum?di=4765209&dri=0&dis=0&dai=0&ps=3171x351&enu=encoding&dcb=___adblockplus&dtm=SSP_JSONP&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1516940393772&ti=Android%E4%BD%BF%E7%94%A8%E5%8A%A8%E7%94%BB%E5%AE%9E%E7%8E%B0%E5%BE%AE%E4%BF%A1%E6%89%AB%E6%8F%8F%E7%BA%BF%E6%95%88%E6%9E%9C%20-%20CSDN%E5%8D%9A%E5%AE%A2&ari=2&dbv=2&drs=1&pcs=1903x922&pss=1903x3204&cfv=0&cpl=16&chi=1&cce=true&cec=UTF-8&tlm=1516940393&rw=922&ltu=http%3A%2F%2Fblog.csdn.net%2Fadam_ling%2Farticle%2Fdetails%2F52771083&ltr=http%3A%2F%2Fblog.csdn.net%2Fchenyong05314%2Farticle%2Fdetails%2F11737701&lcr=https%3A%2F%2Fwww.sogou.com%2Flink%3Furl%3DDOb0bgH2eKh1ibpaMGjuy7IPUAf6hhgeGAnLQnVQRViuSdKpCMIsLvL5St7OmoXgRL6J5qmqNGyKP3KLOjXmv-hyRNlb2QBpiBiJF1N7K5o.&ecd=1&uc=1920x1040&pis=-1x-1&sr=1920x1080&tcn=1516940394"></script><iframe scrolling="no" style="width: 100%; height: 122px; border: 0px;"></iframe>
</dl>
<dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="true" data-dsm="post">
<a class="clearfix" href="http://download.csdn.net/download/yyh352091626/9117405" target="_blank" strategy="searchFromBaidu_2">
<dd class="floatL">
<div class="summary">
<h2>Android模仿微信、云播雷达扫描动画效果源码</h2>
<div class="summary">
<ul>
<li class="time">2015年09月18日 14:23</li>
<li class="visited_num fileSize">2.26MB</li>
<li class="download_btn">下载</li>
</ul>
</div>
</div>
</dd>
<dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a class="clearfix" href="http://download.csdn.net/download/qq_33897656/9948635" target="_blank" strategy="searchFromBaidu_3">
<dd class="floatL">
<div class="summary">
<h2>android 智能扫描动画</h2>
<div class="summary">
<ul>
<li class="time">2017年08月24日 16:47</li>
<li class="visited_num fileSize">2.26MB</li>
<li class="download_btn">下载</li>
</ul>
</div>
</div>
</dd>
<dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a class="clearfix" href="http://download.csdn.net/download/xiabing082/8420529" target="_blank" strategy="BlogCommendFromBaidu_4">
<dd class="floatL">
<div class="summary">
<h2>androidの高仿支付宝扫描动画效果</h2>
<div class="summary">
<ul>
<li class="time">2015年02月03日 17:31</li>
<li class="visited_num fileSize">2.05MB</li>
<li class="download_btn">下载</li>
</ul>
</div>
</div>
</dd>
<dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/zip.svg" alt="" title=""></dt>
</a>
</dl><dl id="yd_a_d_feed_5" class="yd_a_d_feed_cla" style="height:124px;"><iframe scrolling="no" style="width: 100%; height: 90px; border: 0px;"></iframe></dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/xiabing082/article/details/43450045" target="_blank" strategy="BlogCommendFromBaidu_5">
<dd class="clearfix">
<h2 class="" style="margin-bottom: 0px;">androidの高仿支付宝扫描动画效果</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/D/4/5/3_xiabing082.jpg" alt="xiabing082" title="xiabing082"></li>
<li class="user_name">xiabing082</li>
<li class="time">2015年02月03日 15:23</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>1964</span></li>
</ul><div class="summary">
androidの高仿支付宝扫描动画效果
复制代码
-
扫描动画效果,效果如图所示
-
通过效果图,可以看到最边缘的一个圆环,顺时针转动,内部出现辐射光圈。 先看代码,创建一个Activity. pu...
</dd> </a> </dl> <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post"> <a class="clearfix" href="http://download.csdn.net/download/yuzhiqiang_1993/10003605" target="_blank" strategy="searchFromBaidu_6"> <dd class="floatL"> <div class="summary"> <h2>android全盘扫面指定后缀名文件并动态显示到列表上demo</h2> <div class="summary"> <ul> <li class="time">2017年09月30日 14:36</li> <li class="visited_num fileSize">20.02MB</li> <li class="download_btn">下载</li> </ul> </div> </div> </dd> <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt> </a> </dl> <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post"> <a href="http://blog.csdn.net/chaoyu168/article/details/52036806" target="_blank" strategy="searchFromBaidu_7"> <dd class="clearfix"> <h2 class="" style="margin-bottom: 0px;">Android--雷达扫描动态界面</h2> <ul class="floatR"> <li class="avatar_img"><img src="http://avatar.csdn.net/3/7/2/3_chaoyu168.jpg" alt="chaoyu168" title="chaoyu168"></li> <li class="user_name">chaoyu168</li> <li class="time">2016年07月26日 16:13</li> <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1291</span></li> </ul><div class="summary"> DEMO下载地址: 复制代码
效果图:
源码: package com.zihao.radar;
import android.app.Activity; import android.os.Bundle;...
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/ykb19891230/article/details/49801797" target="_blank" strategy="BlogCommendFromBaidu_8">
<dd class="clearfix">
<h2 class="" style="margin-bottom: 0px;">Android自定义View(五)——带扫描线的View</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/E/2/C/3_ykb19891230.jpg" alt="ykb19891230" title="ykb19891230"></li>
<li class="user_name">ykb19891230</li>
<li class="time">2015年11月12日 17:09</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>1749</span></li>
</ul><div class="summary">
因为技术原理比较简单,所以就不详细赘述实现的细节了。效果需求
复制代码
一个具有圆形背景的等宽等高的视图上,上下来回滚动一个渐变的矩形,矩形的两边不能超出圆,也不能比圆小......
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/chenmohousuiyue/article/details/52704645" target="_blank" strategy="BlogCommendFromBaidu_9">
<dd class="clearfix">
<h2 class="">实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环)</h2>
<div class="summary">
实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环),主要用到Paint类,drawRect()以及drawLine()函数。... </div>
<ul class="">
<li class="avatar_img"><img src="http://avatar.csdn.net/E/6/7/3_chenmohousuiyue.jpg" alt="chenmohousuiyue" title="chenmohousuiyue"></li>
<li class="user_name">chenmohousuiyue</li>
<li class="time">2016年09月29日 19:51</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>893</span></li>
</ul>
</dd>
</a>
</dl>
<!-- <script async="async" charset="utf-8" src="https://shared.ydstatic.com/js/yatdk/3.0.0/stream.js" data-notify="bannerMulti_notify" data-insert-nodes="yd_a_d_feed_1,yd_a_d_feed_13,yd_a_d_feed_18,yd_a_d_feed_23,yd_a_d_feed_28,yd_a_d_feed_33" data-id="8935aa488dd58452b9e5ee3b44f1212f" data-hide-ad-label="0" data-div-Style="width:100%;padding:16px 35px 16px 10px;" data-img-Style="float:right;width:120px;" data-tit-Style="font-size:20px;font-weight:bold;margin-bottom:10px;font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;" data-des-Style="width:700px;font-size:14px;font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;" > </script> -->
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/TDCQZD/article/details/75635738" target="_blank" strategy="searchFromBaidu_10">
<dd>
<h2 style="margin-bottom: 0px;">Android动画学习(三)之补间动画常用的实例</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/C/F/D/3_tdcqzd.jpg" alt="TDCQZD" title="TDCQZD"></li>
<li class="user_name">TDCQZD</li>
<li class="time">2017年07月21日 12:04</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>219</span></li>
</ul><div class="summary">
Android动画学习(三)之补间动画常用的实例本篇主要介绍补间动画几个使用的功能
复制代码
App欢迎界面的动画跳转 输入框EditText没有输入的水平晃动动画 仿360雷达扫描旋转动画 App欢迎界面的透...
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/hupei/article/details/51859171" target="_blank" strategy="BlogCommendFromBaidu_11">
<dd>
<h2 style="margin-bottom: 0px;">Android Zxing 扫描器 扫描框、扫描线定制样式</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/0/5/F/3_hupei.jpg" alt="hupei" title="hupei"></li>
<li class="user_name">hupei</li>
<li class="time">2016年07月08日 10:59</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>8284</span></li>
</ul><div class="summary">
一、概述相信Adnroid开发都知道,世界上有四款扫描器,Zxing 、Zbar ,Barcode4J、OkapiBarcode 前二者应用较广泛,至于介绍与区别就在此阐述,网上有很多。此文主要介绍在... </div>
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a class="clearfix" href="http://download.csdn.net/download/superviewer/5298773" target="_blank" strategy="BlogCommendFromBaidu_12">
<dd class="floatL">
<div class="summary">
<h2>OpenGL实现多边形扫描转换的扫描线算法-带动画效果</h2>
<div class="summary">
<ul>
<li class="time">2013年04月25日 11:38</li>
<li class="visited_num fileSize">459KB</li>
<li class="download_btn">下载</li>
</ul>
</div>
</div>
</dd>
<dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/zhao_liwei/article/details/50833103" target="_blank" strategy="BlogCommendFromBaidu_13">
<dd>
<h2 style="margin-bottom: 0px;">安卓雷达扫描动画效果实现</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/E/8/D/3_zhao_liwei.jpg" alt="zhao_liwei" title="zhao_liwei"></li>
<li class="user_name">zhao_liwei</li>
<li class="time">2016年03月09日 10:29</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>2278</span></li>
</ul><div class="summary">
主程序:
复制代码
package com.seehow.elabpupil.exp;
import com.seehow.elabpupil.R; import com.seehow.elabpupil.v...
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/u011290399/article/details/9919885" target="_blank" strategy="BlogCommendFromBaidu_14">
<dd>
<h2 style="margin-bottom: 0px;">二维码扫描之动画效果</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/2/8/4/3_u011290399.jpg" alt="u011290399" title="u011290399"></li>
<li class="user_name">u011290399</li>
<li class="time">2013年08月12日 11:31</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>3429</span></li>
</ul><div class="summary">
使用ZXing做出的二维码扫描界面
复制代码
界面上的黄色圆点动画效果看着不是很明显 看着没什么太大的效果 经常使用微信扫一扫功能的人都感觉,微信的动画效果看着很不错 看一下ZXing的Viewfind...
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/chenyong05314/article/details/11737701" target="_blank" strategy="BlogCommendFromBaidu_15">
<dd>
<h2 style="margin-bottom: 0px;">微信二维码扫描时的动画效果 线</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/6/8/B/3_chenyong05314.jpg" alt="chenyong05314" title="chenyong05314"></li>
<li class="user_name">chenyong05314</li>
<li class="time">2013年09月16日 16:04</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>5160</span></li>
</ul><div class="summary">
UIView *line = [[UIView alloc] initWithFrame:CGRectMake((viewWidth - width)/2, origin_y, width, 1)];... </div>
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/robertkun/article/details/42740159" target="_blank" strategy="BlogCommendFromBaidu_16">
<dd>
<h2>Android学习2: Android使用SurfaceView绘制一条移动的线段</h2>
<div class="summary">
今天 学习了一下, 怎样使用 SurfaceView. SurfaceHolder, Canvas 和 Paint 来绘制一条移动的线段
复制代码
例子, 都是我从网上找的, 只不过是自已简化了一些, 改掉了一...
<ul>
<li class="avatar_img"><img src="http://avatar.csdn.net/6/A/7/3_robertkun.jpg" alt="robertkun" title="robertkun"></li>
<li class="user_name">robertkun</li>
<li class="time">2015年01月15日 13:45</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>2558</span></li>
</ul>
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/luckrr/article/details/52767883" target="_blank" strategy="BlogCommendFromBaidu_17">
<dd>
<h2 style="margin-bottom: 0px;">Zxing界面优化(竖屏、拉伸处理、扫描框大小和扫描线移动)</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/3/D/4/3_luckrr.jpg" alt="luckrr" title="luckrr"></li>
<li class="user_name">luckrr</li>
<li class="time">2016年10月09日 16:51</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>2935</span></li>
</ul><div class="summary">
项目上有扫描二维码的需求,目前比较成熟的框架有zbar,zxing。但各有优势,个人觉得还是zbar对扫描的封装效率比较高些,当时我做的是扫描有的zbar,识别本地图库
复制代码
的有的是zxing,后来发现...
</dd>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a class="clearfix" href="http://download.csdn.net/download/chenmohousuiyue/9643338" target="_blank" strategy="BlogCommendFromBaidu_18">
<dd class="floatL">
<div class="summary">
<h2>实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环)</h2>
<div class="summary">
<ul>
<li class="time">2016年09月29日 19:42</li>
<li class="visited_num fileSize">3KB</li>
<li class="download_btn">下载</li>
</ul>
</div>
</div>
</dd>
<dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/unkonw.svg" alt="" title=""></dt>
</a>
</dl>
<dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<a href="http://blog.csdn.net/qy1993qy/article/details/52824888" target="_blank" strategy="BlogCommendFromBaidu_19">
<dd>
<h2 style="margin-bottom: 0px;">Android实现带动画效果的自定义View</h2>
<ul class="floatR">
<li class="avatar_img"><img src="http://avatar.csdn.net/4/4/9/3_qy1993qy.jpg" alt="qy1993qy" title="qy1993qy"></li>
<li class="user_name">qy1993qy</li>
<li class="time">2016年10月15日 19:55</li>
<li class="visited_num"><i class="icon iconfont icon-read"></i><span>215</span></li>
</ul><div class="summary">
准备工作:
复制代码
考虑这个自定义view需要什么属性来方便在xml布局里面改。 在values/attrs.xml里面添加自定义属性...
</dd>
</a>
</dl>
</div>
复制代码