当前位置:  编程技术>移动开发
本页文章导读:
    ▪仿照Instant Heart Rate效果的心跳检测器        模仿Instant Heart Rate效果的心跳检测器模仿源泉 Instant Heart Rate的地址 开源心跳检查地址 android-heart-rate-monitor 本博客工作 模仿Instant Heart Rate的界面,并采用开源的心跳检查的源码,对其进.........
    ▪ UIView的卸载历程        UIView的卸载过程 第一、viewDidUnload方法 1.调用时机: 内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方。当系统内存吃紧.........
    ▪ Replace - with an en dash character (–, –)       Replace - with an en dash character (–, –) ?这个安卓开发过程中eclipse的提示,新浪网友给出这个解决方法:http://blog.sina.com.cn/s/blog_5ea8670101015dgk.html  太笨了。 看看stackoverflow给出的办法:  直接.........

[1]仿照Instant Heart Rate效果的心跳检测器
    来源: 互联网  发布时间: 2014-02-18
模仿Instant Heart Rate效果的心跳检测器
模仿源泉

Instant Heart Rate的地址


开源心跳检查地址

android-heart-rate-monitor

本博客工作
模仿Instant Heart Rate的界面,并采用开源的心跳检查的源码,对其进行UI改进,以达到模仿Instant Heart Rate的效果。主要界面如下:
界面

主要采用的UI技术
主要是采用了自定义ProgressBar 样式的技术,将 android:indeterminateDrawable指定为自定义好的界面,这样ProgressBar 在显示的时候,就会自动显示自定义的界面。
而图案中心的上面上面按钮,下面图案旋转的技术,主要采用了layer-list层叠样式的的方案,最上面一层是静止的,下面一层是选装的,这样就可达到模拟Instant Heart Rate的效果,实际上Instant Heart Rate采用了将整个图案截成多个部分,然后每个部分旋转的方式实现。本案例的主要实现代UI层码如下:

main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background" >

    <com.jwetherell.heart_rate_monitor.HeartbeatView
        android:id="@+id/image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp" />

    <SurfaceView
        android:id="@+id/preview"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp" />

    <TextView
        android:id="@+id/toptext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/image"
        android:layout_alignTop="@+id/image"
        android:layout_toLeftOf="@+id/preview"
        android:layout_toRightOf="@+id/image"
        android:gravity="center"
        android:text="@string/app_name"
        android:textSize="20sp" />
    
   

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" >

        <ProgressBar
            android:id="@+id/progressBar1"
            android:layout_width="250dp"
            android:layout_height="250dp"
            android:indeterminateDrawable="@drawable/heart_beat_layer_style" />

        <TextView
            android:id="@+id/heartbeatnumbertext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|center_vertical"
            
            android:text="@string/default_text"
            android:textSize="45sp" />
    </FrameLayout> 

    <TextView
        android:id="@+id/bottomtext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="@string/discription"
        android:textSize="19sp" />

</RelativeLayout>

heart_beat_layer_style.xml即自定义ProgressBar的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    
 	
    <item>
        <rotate
            android:drawable="@drawable/monitor_bg_full_"
            android:fromDegrees="0.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%"
            android:toDegrees="360.0" />
    </item>
   <item android:drawable="@drawable/monitor_bg"/>

</layer-list>

整个程序的源码


    
[2] UIView的卸载历程
    来源: 互联网  发布时间: 2014-02-18
UIView的卸载过程

第一、viewDidUnload方法

1.调用时机:

内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方。当系统内存吃紧的时候会调用该方法,释放view,释放的view必须是已经在内存的view,即通过viewdidload之后的view,而不是controller,在iphone应用程序,可以controller已经创建,但是view可以没有进内存,另外该方法不会是viewController release。

注意此时释放的对象应该是所有IBOutlet(无论是property还是实例变量)置为nil,在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等release对象后,将对象置为nil

注意:系统view时已经将其release掉了, 即self.view此时已经为空)

2.释放的对象

viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象。

viewDidUnload 不会引发dealloc方法

第二.viewDidUnload工作内容

1、释放掉一些比较容易创建的对象,或者是一些比较占资源的对象(图片、音频等)
2、如果界面控件自己保持了引用计数,这里也要释放掉。(比如说,这个控件被设成了属性,而且是retain的,这个retain的引用计数就必须释放掉)
3、如果跨类的参数传递机制会在viewDidUnload以后产生不正常的效果,这里也必须处理。

第三 .viewDidUnload   和viewDidload的关系

一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行,viewDidLoad总是在loadView之后调用,不管你是不是通过nib文件创建的,这个方法总是会被调用的。

第四。viewDidUnload和dealloc

viewDidUnload和dealloc方法没有关联,viewDidUnload 不会引发dealloc方法

他们的触发原因不同,viewDieUnload是因为内存不够导致,dealloc是因为对象引用计数为零自动调用。

流程:

(loadView/nib文件)来加载view到内存 ——>viewDidLoad函数进一步初始化这些view ——>内存不足时,调用viewDidUnload函数释放views —->当需要使用view时有回到第一步,如此循环。



    
[3] Replace - with an en dash character (–, –)
    来源: 互联网  发布时间: 2014-02-18
Replace - with an en dash character (–, –) ?

这个安卓开发过程中eclipse的提示,新浪网友给出这个解决方法:http://blog.sina.com.cn/s/blog_5ea8670101015dgk.html  太笨了。


看看stackoverflow给出的办法:  直接将“-”符号替换为“&#8211;”  (不含双引号).


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android中实现为TextView添加多个可点击的文本 iis7站长之家
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3