扫描线

很多App都有扫描二维码功能,扫描的时候会有一个移动的扫描线,看起来很好实现,不过我网上搜了搜很多方法都是实时绘制出来的,计算点的位置然后重绘出来。我的第一感觉是完全没必要,其实这个东西本质上就是一张贴图加一个平移动画效果,所以就自己做了一个小小例子。


首先是扫描线的素材,这个是直接从微信apk里面扒出来的(其实你如果看中某个App的界面中的某个素材,可以直接下载apk,后缀改成zip解压,然后在里面慢慢找,一般都能找到png图片)。




然后贴出布局文件代码:


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_main"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="com.example.user.myapplication.MainActivity">  
  8.     <View  
  9.         android:id="@+id/previewView"  
  10.         android:layout_width="300dp"  
  11.         android:layout_height="300dp"  
  12.         android:layout_centerInParent="true"  
  13.         android:background="@color/colorPrimary"/>  
  14.   
  15.     <ImageView  
  16.         android:id="@+id/scanHorizontalLineImageView"  
  17.         android:layout_width="300dp"  
  18.         android:layout_height="wrap_content"  
  19.         android:src="@drawable/horizontal_line" />  
  20.   
  21.     <ImageView  
  22.         android:id="@+id/scanVerticalLineImageView"  
  23.         android:layout_width="wrap_content"  
  24.         android:layout_height="300dp"  
  25.         android:src="@drawable/vertical_line"/>  
  26. </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"/>
&lt;ImageView
    android:id="@+id/scanHorizontalLineImageView"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:src="@drawable/horizontal_line" /&gt;

&lt;ImageView
    android:id="@+id/scanVerticalLineImageView"
    android:layout_width="wrap_content"
    android:layout_height="300dp"
    android:src="@drawable/vertical_line"/&gt;
复制代码

</RelativeLayout>

界面很简单,previewView主要是用来模拟拍照的预览图,这个预览图提供了动画定位信息,接下来代码会讲。下面是核心代码:

 
 
 
 
  1. public class MainActivity extends AppCompatActivity {  
  2.   
  3.     private ImageView mScanHorizontalLineImageView;  
  4.     private ImageView mScanVerticalLineImageView;  
  5.     private View mPreviewView;  
  6.   
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.activity_main);  
  11.   
  12.         mScanHorizontalLineImageView = (ImageView) findViewById(R.id.scanHorizontalLineImageView);  
  13.         mScanVerticalLineImageView = (ImageView) findViewById(R.id.scanVerticalLineImageView);  
  14.         mPreviewView = findViewById(R.id.previewView);  
  15.     }  
  16.   
  17.     @Override  
  18.     public void onWindowFocusChanged(boolean hasFocus) {  
  19.         super.onWindowFocusChanged(hasFocus);  
  20.   
  21.         int[] location = new int[2];  
  22.   
  23.         // getLocationInWindow方法要在onWindowFocusChanged方法里面调用  
  24.         // 个人理解是onCreate时,View尚未被绘制,因此无法获得具体的坐标点  
  25.         mPreviewView.getLocationInWindow(location);  
  26.   
  27.         // 模拟的mPreviewView的左右上下坐标坐标  
  28.         int left = mPreviewView.getLeft();  
  29.         int right = mPreviewView.getRight();  
  30.         int top = mPreviewView.getTop();  
  31.         int bottom = mPreviewView.getBottom();  
  32.   
  33.         // 从上到下的平移动画  
  34.         Animation verticalAnimation = new TranslateAnimation(left, left, top, bottom);  
  35.         verticalAnimation.setDuration(3000); // 动画持续时间  
  36.         verticalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环  
  37.   
  38.         // 播放动画  
  39.         mScanHorizontalLineImageView.setAnimation(verticalAnimation);  
  40.         verticalAnimation.startNow();  
  41.   
  42.         // 从左到右的平移动画  
  43.         Animation horizontalAnimation = new TranslateAnimation(left, right, top, top);  
  44.         horizontalAnimation.setDuration(3000); // 动画持续时间  
  45.         horizontalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环  
  46.   
  47.         //播放动画  
  48.         mScanVerticalLineImageView.setAnimation(horizontalAnimation);  
  49.         horizontalAnimation.startNow();  
  50.   
  51.     }  
  52. }  
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&amp;dri=0&amp;dis=0&amp;dai=0&amp;ps=3171x351&amp;enu=encoding&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1516940393772&amp;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&amp;ari=2&amp;dbv=2&amp;drs=1&amp;pcs=1903x922&amp;pss=1903x3204&amp;cfv=0&amp;cpl=16&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1516940393&amp;rw=922&amp;ltu=http%3A%2F%2Fblog.csdn.net%2Fadam_ling%2Farticle%2Fdetails%2F52771083&amp;ltr=http%3A%2F%2Fblog.csdn.net%2Fchenyong05314%2Farticle%2Fdetails%2F11737701&amp;lcr=https%3A%2F%2Fwww.sogou.com%2Flink%3Furl%3DDOb0bgH2eKh1ibpaMGjuy7IPUAf6hhgeGAnLQnVQRViuSdKpCMIsLvL5St7OmoXgRL6J5qmqNGyKP3KLOjXmv-hyRNlb2QBpiBiJF1N7K5o.&amp;ecd=1&amp;uc=1920x1040&amp;pis=-1x-1&amp;sr=1920x1080&amp;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の高仿支付宝扫描动画效果
复制代码
  1. 扫描动画效果,效果如图所示  

  2. 通过效果图,可以看到最边缘的一个圆环,顺时针转动,内部出现辐射光圈。   先看代码,创建一个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>
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值