2014年3月24日星期一

[]几点泡脚最补肾?盐水泡脚治百病(图) - 新华健康 - 新华网

本文自动转发自我的博客: http://www.haofengjing.org/2553.html

为何晚上9点泡脚最护肾?

    之所以选择这个时间段补肾,是因为此时是肾经气血比较衰弱的时辰,在此时泡脚,身体热量增加后,体内血管会扩张,有利于活血,从而促进体内血液循环。同时,白天紧张了一天的神经,以及劳累了一天的肾脏,都可以通过泡脚在这个时候得到彻底放松和充分的调节,人也会因此感到舒适。

    "热水泡脚不但可以起到滋肾明肝的作用,还有利于提高睡眠质量。"如果泡完脚后,再适当做几分钟足底按摩,对身体的血液循环更好,脏腑器官也更能得到进一步的调节。泡脚后,建议不再进行其他活动,隔数分钟即入睡,补肾效果更佳。

    泡脚泡多长时间最好?

    专家说,泡脚时,水温不能太热,以40℃左右为宜,泡脚时间也不宜过长,以半小时左右为宜。由于金属易冷,所以泡脚的容器最好用木盆,其中可放一些有利于活血的丹参、当归;或放些连翘、金银花、板蓝根、菊花,以起到降火清热的作用。

    中药泡脚的神奇效果

    一到冬季,手脚冰凉、遇寒咳嗽、手脚皴裂等会困扰很多人。在入秋时养成足浴的习惯,有助于预防这些"小病"。凤凰健康小编介绍几个简便有效的足浴"小药方",大家可以根据自己的症状进行选择。

    1.生

    祛寒

    生姜在中医上属于辛温解表药,有祛寒解表的作用,而且毒副作用较小。现代医学认为生姜能够刺激毛细血管,改善局部血液循环和新陈代谢。怕冷、容易手脚冰凉的人可以用生姜泡脚。

    需要注意的是,用生姜泡脚并不是将生姜放入热水中泡一会儿,而是一般取15—30克的生姜(约为中等大小的姜半块),将其拍扁,放入锅中加入小半锅水,盖上锅盖用热水煮上10分钟左右。煮好后,将全部姜水倒出,加入适量冷水至40℃左右(一般以不感觉到烫为宜)。泡脚时水要没过踝部,最好边泡边搓双脚。

    生姜中的药用成分有许多是小分子物质,盖上锅盖煮可以避免其挥发。半块姜的用量是对于一般家庭用来泡脚的盆装上半盆水的量而言。如果泡脚用的水量较多,或是怕冷的症状比较重,可酌情增加姜的用量。用生姜水泡脚一段时间后,怕冷的症状一般能够得到一定程度的改善。

    2.桂皮

    消肿

    桂皮,又称肉桂、官桂或香桂,它与花椒都是家庭中常用的香料,二者都有温肾阳的作用。用他们泡脚,对于因肾病引起的浮肿有较好的缓解作用。

    肾源性水肿是由于肾脏功能问题或出现疾病而引起的水肿。一般首先发生在组织疏松的部位,如眼睑或面部、足踝部,以早晨起床时最为明显,用手指按压水肿部位的皮肤可出现凹陷。如果出现了肾源性水肿,可以用花椒和桂皮各15克(一小撮或一小块)煮后泡脚,煮法同煮生姜的方法。连续用此法泡脚能够起到一定的消肿作用。

    如果先从身体的下垂部位(如腿)开始出现水肿症状,逐渐发展到身体其他部位,则可能是由于心脏功能问题而导致的心源性水肿。这种水肿可以选用前面提到的生姜煮水来泡脚,可以促进下肢血液循环,从而达到辅助减轻水肿的目的。

    3.艾草

    温肺

    据《本草纲目》记载,艾草是性温、味苦、无毒的一味药。它具有回阳、理气血、逐湿寒、止血安胎等功效,也常用于针灸,故又被称为"医草"。用艾草泡脚还能够改善肺功能,对于患有慢性支气管炎和容易咳白痰的人很有好处。

    艾草泡脚的方法和生姜泡脚的方法相近,一般取30-50克(一小把)干艾草煮水泡脚,煮法与前面提到的相同。

    身体寒湿重的病人,每周可以用艾草泡一次脚。还可在用艾草水泡脚的同时,喝上一杯生姜红枣水(10粒干红枣加两片生姜,加十碗水煮两个小时)作为辅助。

    用艾草泡脚期间应当注意,同时多喝温开水,少吃寒凉的食物,注意休息。虚热、实火引起的头面部、咽喉部的不适、慢性支气管炎等都能得到一定程度的缓解。

    发烧和患有低血压、糖尿病的人要在医生指导下用艾草泡脚。而且用艾草泡脚每周2-3次即可,不宜过于频繁。因为用艾草泡脚能引火下行,有时会引起头面部的气血不足,容易引起头晕、头痛,还会引起情绪上的变化。

    4.红花

    防冻疮

    红花是一种妇科常用中药,它能够活血通经,祛淤止痛。冬季容易发生冻疮和皮肤皴裂的人在秋季应该提早用红花泡泡脚,可以起到很好的预防作用。

    取红花10-15克(大约一小撮)按之前提到的方法煮水泡脚,能够预防和改善冻疮。每到冬天,有人的手脚经常会发生皴裂和破皮,但是一旦出现这种情况,又需要很长时间恢复。选择用红花来泡脚,也可以在一定程度上预防这种情况的发生。

    如果用30-50克的干艾草和10-15克的红花同时煮水用来泡脚,还可以改善血液循环,预防和减轻静脉曲张、末梢神经炎。

    如果血液循环不好,平时手脚容易发麻,或者下肢出现淤血,就可以用这两种药材一起泡脚。泡脚后,不仅能够使血液循环问题得到改善,还能够在一定程度上提高睡眠质量。在感冒期间用红花和艾草泡脚,还能起到一定的治疗作用。

安全泡脚有禁忌

    第一,泡脚时间不宜过长,以15-30分钟为宜。泡脚时血液会流向下肢,脑部易供血不足。心脑血管疾病患者、老年人如果感到胸闷、头晕,应暂时停止泡脚,休息一下。糖尿病患者末梢感觉能力差,应由家人先试水温,防止发生烫伤。

    第二,饭后1小时内不宜泡脚。吃完饭后,体内大部分血液流向消化道,如果饭后立即用热水泡脚,本该流向消化系统的血液转而流向下肢,日久会影响消化吸收而导致营养缺乏。因此,最好饭后1小时再泡脚。

    第三,中药泡脚最好用木盆。铜盆等金属盆中的化学成分不稳定,容易与中药中的鞣酸发生反应,生成鞣酸铁等有害物质,使药物的疗效大打折扣。

    第四,儿童不宜用过热的水长时间泡脚。因为足弓是从儿童时期开始形成的,因此要从小注意保护。如果常用热水给小儿洗脚,足底的韧带就会变得松弛,不利于足弓的形成和维持,容易形成扁平足。

    第五,女性经期别自己乱用中药泡脚。女性经期出现的问题比较复杂,如果不能辨清原因就用中药泡脚,不但不会起到舒缓的作用,还可能会加重痛经等症状。因此,如果女性希望用中药泡脚的方法来达到治疗痛经等经期健康问题的目的,最好能够咨询医生,根据自身情况对症用药。

    泡脚的三个小偏方

    偏方一

    姜汁泡脚,散寒,治疗手脚冰凉

    "姜汁泡脚,就是在温水中加入几块打扁的生姜,有散寒的作用,对于缓解手脚冰凉症状有很好的效果。"小江介绍说。

    杨明表示,姜味辛性温,如果内服,可加速人体的血液循环,改善手脚冰凉、畏寒怕冷等不适症状。用生姜水泡脚,并没有什么坏处,但是如果说通过姜汁泡脚就能治疗某种疾病,是没有依据的。

    偏方二

    醋泡脚,改善睡眠障碍

    "在温水中加入几匙白醋,就是醋泡了,用醋泡脚,可以滋润皮肤,还可消除疲劳,治疗睡眠障碍。"小江说。

    杨明解释说,醋酸具有促进新陈代谢的功效,可以帮助休息,恢复体力,预防动脉硬化、高血压。食醋对健康有所助益,但是用醋泡脚能改善睡眠的说法是民间经验之谈,医学上并没有此说法。

    偏方三

    盐水泡脚,杀菌、治脚气

    盐水泡脚有好处,可以治疗百病,下面请看详细内容。

    一、盐水泡脚可以治脚气盐水泡脚治脚气,这是因为食盐有很好的杀毒除菌功效,而把食盐放入热水中,利用水中热力,那么皮肤可以更好的吸收盐水的杀毒除菌成分,就可以实现盐水泡脚治疗脚气的功效。

    二、盐水泡脚可以清洁脚部因为食盐的杀毒除菌功效使得盐水具有很强的清洁能力,用盐水泡脚就可以清洁脚部。

    三、盐水泡脚可以去角质因为食盐有去角质的作用,所以把食盐放入热水中进行泡脚,就可以利用热水中的热力增强去角质的作用。

    四、盐水泡脚可以补肾、抗衰老因为我们人体脚部离心脏是最远的,所以血液供应非常少,而式样盐水泡脚,就可以让盐水的有效成分进入肾和心脏,并且促进血液循环,已达到补肾、抗衰老的好处。

    五、盐水泡脚可以治感冒盐水泡脚促进血液循环,去除足部的寒气,这样就可以达到治疗感冒的作用。

    六、盐水泡脚可以助眠抗衰经常用盐水洗脚,再配以按摩涌泉等穴位,能促进局部血液循环,有助眠抗衰之效,还能治疗感冒,甚至可以增强记忆力,使头脑感到轻松。

    盐水洗脚的方法是,一般在半盆热水中加半调羹盐,水温可稍高一些。但脚部如有伤口,盐水洗脚应暂缓进行。

    健康达人泡脚按摩小道具推荐:

    过年前逛街的时候发现的一个小东西,拿来当泡脚时的按摩小利器再合适不过了。书上说泡脚时最好能同时按摩脚底,因为此时血液循环加快,按摩起来事半功倍,推荐使用高尔夫球,可惜Bonbon一直都没空专门去买,年前在一家超市发现了这个小东西:

    里面是两只可爱的小海龟,背上背着硬硬的齿状按摩盘

    说明指示本来是用来固定在浴缸上的,可以边泡澡边按摩脚底,不过Bonbon泡脚的时候还是多过泡浴缸的时候,所以就拿来放在泡脚桶的桶底,边泡脚边踩,感觉真的很棒。您也许不能买到一样的东西,不过这也许能给您点启发找找生活中其它随手可得的替代品。


[]晨喝水与晚泡脚的好处

本文自动转发自我的博客: http://www.haofengjing.org/2551.html
俗话说:"晨起皮包水,睡前水包皮,健康又长寿,百岁不称奇"。皮包水是指晨起喝水,水包皮指的是睡前泡脚,晨起喝水和睡前泡脚是养生保健的良好办法。
一、晨 起 喝 水
(一)为何要晨起喝水
人睡了一夜,体内水分由于生理上的散发而减少,晨起喝水一方面可以补充身体代谢失去的水分,另一方面又可以洗涤清洁已排空的肠胃,有利于胃肠生理功能的发挥。晨起喝水还有一个重要的作用,水很快被肠粘膜吸收进入血液,可有效地增加血溶量,稀释血液,降低血粘稠度,促进血液回圈,防止心脏病"高峰期"的心脑血管疾病发生,这对于中老年人来说尤为重要。清晨起床饮水,还能湿润肠道,软化大便,促进大便的排泄,防治便秘。晨起喝水,以喝温开水为佳。
(二)第一杯水该怎么喝才正确
很多人都知道,起床后空腹喝下第一杯水有益健康;但是,这第一杯水该怎么喝才正确?白开水、蜂蜜水、柠檬水、淡盐水、果汁、牛奶、可乐、茶水、汤水……这些选项都对么?
晨起喝水,喝与室温相同的开水最佳,以尽量减少对胃肠的刺激。据研究发现,煮沸后冷却至20℃~25℃的白开水是最佳选择,因为其内含的活性生物,会透过细胞膜促进新陈代谢,增强人体的免疫功能。凡是习惯喝温或凉开水的人,新陈代谢状态良好,肌肉组织中的乳酸积累较少,因此不易感到疲劳,而且开水中的钙、镁元素对身体健康是很有益的。不过,早上起床后不要饮用冷水,那样会刺激胃部并且无法到达肠道,因而造成体内胀气。
相比之下,清晨起来喝一杯蜂蜜水更为科学。人经过一夜睡眠后,体内大部分水分已被排泄和吸收,这时空腹饮一杯蜂蜜水,既可补充水分,又可增加营养,完全可取代白开水的位置。
每天早上起床后,最好在尚未进食之前,空腹喝下一杯加了新鲜柠檬片的热开水。别小看这杯排毒水,它不仅是身体最好的酸碱中和剂,还能起到清除宿便、排除毒素的功效。此外,如果有口气不佳的困扰,它也能神奇地帮你改善。
有不少人认为喝淡盐水有利于身体健康,于是晨起就喝淡盐水,这种认识是错误的。据研究认为,人在整夜睡眠中未饮滴水,然而呼吸、排汗、泌尿却仍在进行中,这些生理活动要消耗损失许多水分。早晨起床如饮些白开水,可很快使血液得到稀释,纠正夜间的高渗性脱水。而喝盐水则反而会加重高渗性脱水,令人更加口干。何况,早晨是人体血压升高的第一个高峰,喝盐水会使血压更高。
有人以为早上起来喝上一杯果汁,既有解渴作用又有营养。其实,这时喝果汁,并不能提供此时身体需要的水分,而且在缺水的状态下,就让胃肠进行工作,对身体健康很不利。如果这时喝市场上卖的果汁、可乐、汽水等,就更是大错特错。汽水和可乐等碳酸饮料会加速钙的排泄,清晨饮用非但不能有效的补充机体缺少的水分,还会增加身体对水分的要求,反而造成体内缺水。
早上可以喝牛奶,这没有错,但放在"第一杯"就错了。对有些中老年人空腹饮牛奶,会出现"直通车"的泻肚现象,就不能随便喝甜牛奶或酸牛奶。空腹喝牛奶不过是"穿肠而过",胃来不及消化,牛奶的营养价值也就无从体现,还有人出现肠胃胀气等"过敏"反应,更会把好事变成坏事。因此,早上喝牛奶是作为"早餐"来用的,并且一定要配上碳水化合物同吃,才能充分发挥蛋白质的营养价值。
(三)晨饮水的好处
一是补充水分:一个晚上人体流失的水分大约有450毫升,晨起喝水可以补充身体代谢失去的水分;二是防止便秘:清晨起床后饮水还能刺激胃肠的蠕动,湿润肠道,软化大便,促进大便的排泄;三是冲刷肠胃:早上起床后胃肠已经排空,这时喝水可以洗涤清洁肠胃,冲淡胃酸,减轻胃的刺激,使肠胃保持最佳的状态;四是清醒大脑:起床后喝的水会很快被肠粘膜吸收进入血液,可有效增加血溶量,稀释血液,降低血液稠度,促进血液循环,让大脑迅速恢复清醒状态;五是美容养颜:起床后为身体补水,有助肌体排出体内的毒素,滋润肌肤。
(四)水是最好的药
您了解自己身体内的水吗?
您了解身体缺水会导致哪些疾病吗?
您知道仅仅用水就可以治愈许多慢性疾病吗?
也许,您长年患有关节炎、过敏症、高血压;也许,您正在经受哮喘、糖尿病或肠炎性疼痛的折磨。那么,请您找一本《水是最好的药》这本通俗易懂的书读一读吧!美国著名医学博士F·巴特曼(盘尼西林发现者和诺贝尔奖得主亚力山大·佛莱明的学生)会告诉您:您没病,只是渴了!
如果我们了解了水在人体内的具体运行情况,我们就会恍然大悟,我们关于医疗保健的观念就会随之发生彻底的改变。我们会惊讶地发现许许多多疾病的病因仅仅是:身体缺水。然而,不可思议的是,人们往往会犯最基本的、灾难性的错误:当身体急需水时,我们却给它荼、咖啡、酒或工业化生产的碳酸饮料,不仅含有大量的水,而且还含有一些对身体有益的物质;与此同时,我们也不能否认:荼、咖啡、酒或工业化生产的碳酸饮料里,含有大量脱水因子,这些脱水因子进入身体后,不仅让进入身体的水迅速排出,而且还会带走体内储备的水。这就是我们越喝荼、啤酒和咖啡……就越想小便的原因。一方面我们的身体急需水会发出了口渴的呼唤;一方面我们用荼、咖啡、酒或工业化生产的碳酸饮料在糊弄口渴,并没有真正满足身体对水的急切需要。久而久之,水的新陈代谢功能就会紊乱。新陈代谢功能一俟紊乱,身体的某些区域缺水,它发出的信号就不仅是口渴,而会表现出比"口干"多得多的症状:
它们会让您的腰部疼痛;
它们会让您的颈椎疼痛;
它们会让您的体温变高;
它们会让您的血压升高;
它们会让您哮喘和过敏;
它们会让您的消化道溃疡;
它们甚至还会让您患上胰岛素非依赖型糖尿病;
多么可怕的结果,多么巨大的灾难!原因却既简单又平常。
身体缺水不仅会发出口渴的信号,还会发出各种各样的患病信号。
渴是身体对水的呼唤,这呼唤短促而有力、焦急而难耐。此时,倘若饮一杯清水,身体的呼唤就会停息,这就是中外古今战场上,为什么战士们除了携带武器之外,都必须带水的道理。因为水能够满足身体的需要,消除了人的焦躁不安。然而,令人遗憾的是,随着渴意的消失,人们对水的作用的认识似乎也到此为止。人们很少去再思考如下的问题:
水为什么能解渴?
水进入身体后是怎样运行的?
水在身体内究竟起着怎样至关重要的作用?
为什么身体缺水时我们会感到口渴?
身体缺水还有没有其他的信号和表征?
(五)晨喝水的关键词
空腹:清晨喝水必须是空腹喝,也就是在吃餐之前喝水,否则就收不到促进血液循环、冲刷肠胃等效果。
慢饮:最好是小口小口地喝水,因为饮水速度过猛对身体非常不利,可能引起血压降低和脑水肿,导致头痛、恶心、呕吐。
份量:每天第一杯水的份量约是300毫升为最佳(即全日饮水量3000毫升的10%)。
水是最好的药:由于身体缺水会导致水代谢功能紊乱,生理紊乱又导致了诸多疾病的产生;而治疗这些疾病的方法简单得令您难以置信,那就是:喝足够多的水。
二、睡 前 泡 脚
(一)为何要睡前泡脚
脚离心脏最远,位置最低,常受压迫,因此易出现供血不足和静脉回流障碍,尤其在寒冬,末梢循环更差,常有双脚冰冷、浮游现象,就是躲进被窝,有的好久仍未见回暖。
南宋诗人陆游,享年86岁,他极力注重养生,曾写诗道:"老人不复农桑,点数鸡豚亦未忘。洗脚上床真一快,稚孙渐长解烧汤"。说明睡前以热水泡脚的舒畅经验。
(二)睡前泡脚的方法
临睡前用热水泡脚是我国传统的保健方法之一,以摄氏40℃至60℃的水泡脚至淹没踝部的高度,浸泡20至30分钟,其间频频加入热水以维持温度。这不仅能使脚部微小血管扩张,促进全身血液循环,还可活跃网状内皮系统的吞噬功能,增强细胞膜的通透性,提高新陈代谢,达到健身祛痰的作用。因此,我国有民谚道:春天洗脚升阳固脱,夏天洗脚暑湿乃除,秋天洗脚肺腑润育,冬天洗脚丹田暖和。
(三)睡前泡脚的范例
湖南省桃江县范香秀在106岁时背不驼、眼不花、耳不聋,拄杖还能上2里路,她的生活习惯之一是睡前用热水泡脚;大陆中医妇科专家韩百龄87岁时仍身体硬朗、精神矍乐,他睡前用热水泡脚的习惯已有60多年,认为受益匪浅。
(四)用一匙食盐与一盆水调和烫脚
有位署名"丹心"的糖尿病患者,在《光明杂志》27期上指出,他听说有一患糖尿病、高血压、心脏病、半身不遂的人,每晚用一匙食盐与一盆热水调和烫脚,行之几个月,竟然疾病全去,因此仿而为之,血糖值果见下降。无糖尿病者,用老姜煮水后,泡脚、泡澡更佳。
(张维新根据有关网文和《水是最好的药》一书提供的信息整理编打)

[]BmiUI - androidbmi - 設計使用者介面 - BMI (Body Mass Index) Calculator App on Android platform - Google Project Hosting

本文自动转发自我的博客: http://www.haofengjing.org/2549.html

視圖(View)

軟體設計的過程中,常常會遇到需要頻繁修改使用者介面的情境。改著改著程式設計師們就累積起了一些經驗,也歸納出了許多應對之道。如著名的 MVC(Model-View-Controller) 模式。Google Android 為我們考慮了介面修改問題。Android 為了單純化介面修改方式,採用了目前比較流行的解決方案--即將介面描述部份的程式碼,抽取到程式外部的 XML 描述文件中。

我們在前面的過程裡已經學到,如何在 Android 應用程式中替換 TextView 介面元件所顯示的純文字內容。那麼...這個經驗能不能直接用到 BMI 應用程式的設計上呢?

我們先回過頭來思考, 要實現基本的BMI計算功能,在螢幕上至少需要哪些介面元件,以供使用者輸入數值和查看結果?

為了輸入 BMI 程式所需的身高體重值,大致上我們需要兩個 TextView 元件用來提示填入身高體重數字,另外也需要兩個文字輸入欄位用來填入身高體重數字。我們還需要一個按鈕來開始計算,而計算完也需要一個 TextView 元件來顯示計算結果。於是初版的 BMI 應用程式介面的樣子就浮現出來了。

查閱文件

話說回來,我們從哪得知各種可用的介面元件呢?其中一個方法是查閱文件。

Android 文件網站上找到各種可用介面元件列表。

http://developer.android.com/guide/tutorials/views/index.html

例如我們想查看 EditText 的內容,我們可以點進 EditText 連結查看其內容。 http://developer.android.com/reference/android/widget/EditText.html

你會看到一個詳細地驚人的網頁。

這邊舉其中常用到的 EditText 介面元件為例。EditText 介面元件的作用就是提供一個文字輸入欄位。EditText 繼承自另一個叫 TextView 的介面元件,TextView 介面元件的作用是提供文字顯示,所以 EditText 介面元件也擁有所有 TextView 介面元件的特性。 此外,文件中你也可以查找到EditText 欄位的一些特殊屬性,如 「android:numeric="integer"」(僅允許輸入整數數字)、「android:phoneNumber="true"」(僅允許輸入電話號碼),或「android:autoLink="all"」(自動將文字轉成超連結)。 例如要限制 EditText 中只允許輸入數字的話,我們可以在 XML 描述檔中,透過將EditText 的參數「android:numeric」 指定為 「true」,以限制使用者只能在 EditText 文字欄位中輸入數字。

離線文件

當你處於沒有網路連接的情況下時,也可以找到 Android 文件參考。 在下載了 android-sdk 後,將之解壓縮,你可以在「android-sdk/docs」 目錄中 (android_sdk/docs/reference/view-gallery.html) ,找到一份與線上文件相同的文件參考。

開始設計

我們從實例來開始,定義一個基本 BMI 程式所需的身高(Height)輸入欄位,就會用到 EditText,與 TextView 介面元件,其描述如下:

1  <TextView  2     android:layout_width="fill_parent"  3     android:layout_height="wrap_content"  4     android:text="身高 (cm)"  5     />  6  <EditText android:id="@+id/height"  7     android:layout_width="fill_parent"  8     android:layout_height="wrap_content"  9     android:numeric="integer"  10    android:text=""  11    />

可以看到 EditText 介面元件描述的基本的組成與 TextView 介面元件相似,都用到了「android:layout_width」與「android:layout_height」屬性。 另外,指定的另外兩個屬性「android:numeric」、「android:text」則是 EditText 介面元件的特別屬性。「android:text」屬性是繼承自 TextView 介面元件的屬性。

    android:numeric="integer"      android:text=""

將 「android:numeric」 指定為 「integer」,可以限制使用者只能在 EditText 文字欄位中輸入整數數字。「android:text」屬性則是指定 EditText介面元件預設顯示的文字(數字)。

我們再來看看 Button (按鈕)介面元件

         <Buttonandroid:id="@+id/submit"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:text="計算 BMI 值"              />

Button 介面元件同樣有 「android:layout_width」與「android:layout_height」屬性,另外一個「android:text」屬性則用來顯示按鈕上的文字。

整合

我們這就從文件中挑出我們需要的 TextView(文字檢視)、EditText(編輯文字)、Button(按鈕) 三種介面元件,照前面的設計擺進 LinearLayout (線性版面配置)元件中。

完整的「main.xml」介面描述檔如下:

    <?xml version="1.0" encoding="utf-8"?>      <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"          android:orientation="vertical"          android:layout_width="fill_parent"          android:layout_height="fill_parent"          >          <TextView              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:text="身高 (cm)"              />          <EditTextandroid:id="@+id/height"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:numeric="integer"              android:text=""              />          <TextView              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:text="體重 (kg)"              />           <EditTextandroid:id="@+id/weight"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:numeric="integer"              android:text=""              />           <Buttonandroid:id="@+id/submit"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:text="計算 BMI 值"              />           <TextViewandroid:id="@+id/result"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:text=""              />               <TextViewandroid:id="@+id/suggest"                   android:layout_width="fill_parent"                   android:layout_height="wrap_content"                   android:text=""                 />      </LinearLayout>

我們可以啟動模擬器檢視執行結果。或是在頁面標籤下選擇「Layout」標籤,來預覽頁面配置。

啟動模擬器之後,模擬器畫面上出現了兩個輸入欄位。欄位上方分別標示著「身高 (cm)」、「體重 (kg)」。在兩個輸入欄位下方,是一個標示著「計算 BMI 值」的按鈕。 當你在欄位中試著輸入文字或數字(你可以直接用電腦鍵盤輸入,或按著模擬器上的虛擬鍵盤輸入)時,你也會發現,正 XML 描述檔的描述中對兩個 EditText 欄位所規定的,欄位中只能輸入數字。

我們在上面XML描述檔中定義的最後兩個 TextView 介面元件,由於並未替這兩個介面元件指定「android:text」屬性,所以在螢幕上並未顯示。這兩個介面元件在後面章節中會派上用場。

革命的路還長

高興了沒多久,你發現按下"計算 BMI 值" 按鈕後,應用程式完全沒反應。

這是正常的,因為我們還沒處理從介面輸入取得身高體重、將數值導入 BMI 計算方式、將結果輸出到螢幕上...等等 BMI 應用程式的關鍵內容。 不過在進入了解程式流程之前,我們還有一個「android:id」屬性尚未解釋哩。 接著我們將透過講解「android:id」屬性,來進一步了解 Android UI。

視覺化的介面開發工具

目前的 ADT 版本提供了預覽介面的功能,但尚未提供方便地視覺化拖拉介面元件的開發工具。以後也許 ADT 會加入完整的 GUI 拖拉設計工具。

但在 ADT 加入完整的 GUI 拖拉設計工具之前,已經有人寫出來了對應 Android 的 GUI 拖拉設計工具,可供使用。

DroidDraw - Android GUI 拖拉設計工具 http://code.google.com/p/droiddraw/


[]ReadSource - androidbmi - 建立一個 Android 程式 - BMI (Body Mass Index) Calculator App on Android platform - Google Project Hosting

本文自动转发自我的博客: http://www.haofengjing.org/2547.html

在前幾章我們已經學到怎麼開啟現有的專案,也導覽過了整個模擬器的設定流程。 現在我們從設計一個簡單實用的身高體重指數計算(BMI)應用程式開始,學習設計一個 Android 應用程式所需的基礎。

維基百科上這麼介紹 BMI 身高體重指數:

身高體重指數(又稱身體質量指數,英文為BodyMassIndex,簡稱BMI)是一個計算值。  ...當我們需要比較及分析一個人的體重對於不同高度的人所帶來的健康影響時,  BMI值是一個中立而可靠的指標。

簡而言之,我們要設計的程式就是允許輸入身高體重,按下「計算 BMI」鍵後就在螢幕上顯示 BMI 值,並彈出「你應該節食囉」、或「你應該多吃點」...等健康建議。健康建議的判斷: 只要 BMI 值超過 「25」 時就算偏胖、BMI 值低於 「20」 就算偏瘦。 判斷寫得很簡單。畢竟我們要學習的關鍵知識,不是在於 BMI 值的算法或健康建議的內容,而是在於 Android 程式的運作方式。

參考資源 http://zh.wikipedia.org/wiki/身高體重指數

我們這就先從建立一個新的程式專案開始吧。

建立新程式專案

首先,我們照前面章節的教學,建立一個新的程式專案。並將新專案名稱命名為 BMI。 在「內容」欄裡,我們選擇「在工作區域中建立新專案」(Create new project in workspace)。 這時,如果在"選擇欄"取消掉勾選「使用預設目錄」(Use default location) 選項,我們就可以切換儲存專案的資料夾。 大部分的時候我們並不需去改動這個選項,而是直接使用預設的資料夾。

前面章節中都是開啟現有的專案,因此那些專案屬性 (Properties) 等內容都被自動填寫好了。這章中要從無到有新建一個專案,因此我們必須自行填寫專案相關的屬性。

在此對"New Android Project" 對話框中出現的這些欄位作些簡單的說明:

名稱 描述
Project Name 包含這個項目的資料夾的名稱
Application Name 顯示在應用程式上的標題
Package Name 套件(Package)名稱,JAVA 的習慣是用套件名稱來區分不同的類別(class)。依照專案的不同,我們會起不同的路徑名稱。
Create Activity 使否建立這個是項目的主要類別,勾選後可以指定這個類別的名稱。這個類別是一個 Activity 類別的子類別。我們可以在「Activity」中啟動程式和控制程式流程,或是根據需要控制螢幕、界面。
Build Target 選擇用來編譯專案的 SDK 版本。 當選定了 Build Target 後,開發工具會在 Min SDK Version 欄位中自動填入對應的值
Min SDK Version 本應用程式所支援的最低 SDK 版本代號。

我們在欄位中分別填入以下的值:

名稱
Project Name BMI
Application Name BMI
Package Name com.demo.android.bmi
Create Activity Bmi
Min SDK Version 4

填好值後按下「Finish」 按鈕,就建立好新專案了。

注意 Package Name 的設定,必須至少由兩個部分所構成,例如:com.android。「Activity Name」是指定用來產生預設 java 程式碼的文件名稱,與文件中預設 Activity 類別 (class) 的名稱。依照 java 語言的命名習慣,「Activity Name」最好採用開頭大寫的形式。

回到 Eclipse 主畫面,我們注意到在左側 Package Explorer 視窗中已順利新增加了一個 BMI 目錄。

程式專案架構

乍看之下,Android 插件已幫我們建立了不少檔案。 檢視新建立的 BMI 檔案夾中的內容,我們可以將一個 Android 應用程式基本的檔案結構歸納成如下:

我們來看看 Android 應用程式的基本檔案結構,以及各自所負責的內容。

src/ 原始碼(source)目錄

src 目錄中包含了一個 Android 應用程式中所需的各個程式碼檔案。這些檔案被包在對應 package 的子目錄下。(如本章的 BMI 例子中,子目錄指的就是 /src/com/demo/android/bmi/)

src 目錄中比較關鍵的程式有:

1. Bmi.java 這個檔案的檔名會隨著你在建立一個新的程式專案畫面中所填入「Create Activity」欄位值的不同而改變。這是新程式專案中的主要程式區塊。我們開發 Android 程式的多數時間,都是在 src 目錄下和 Android 打交道。

gen/ 自動生成(Generate)目錄

gen 目錄中存放所有自動生成的檔案。

gen 目錄中最關鍵的程式就是 R.java 檔。

1. R.java 這個檔是自動產生的。會由 ADT 插件自動根據你放入 res 目錄的 XML 描述文件、圖像等資源,同步更新修改 'R.java' 這個中介檔案。所有的 Android 程式中都會有以 R.java 為名的這個檔案,你完全不需要,也應避免手工修改 R.java 這個檔案。

R.java 中自動產生的 「R」 類別就像是個字典一樣,包含了使用者介面、圖像、字串等各式的資源與相應的編號(id)。Android 應用程式中很多時候會需要透過 R 類別調用資源。 編譯時編譯器也會查看這個資源列表,沒有使用到的資源就不會編譯進去,為手機應用程式節省不必要佔用的空間。

res/ 資源(Resource)目錄

「res」 目錄中存放所有程式中用到的資源檔案。"資源檔案"指的是資料檔案,或編譯時會被轉換成程式一部分的 XML 描述檔。Android 針對放在 「res」 目錄下的不同子目錄的資源,會有各自不同處理方式。因此我們寫程式時,最好能搞清楚各目錄下分別可放置的內容。

res/ 中的程式:

3. layout/ 版面配置(layout)目錄 「layout」目錄包含所有使用 XML 格式的介面描述檔。「layout」 中的 XML 介面描述檔就像寫網頁時用到的 HTML 檔案一樣,用來描述螢幕上的版面編排與使用的介面元件。XML 介面描述檔描述的內容可以是整張螢幕,也可以只描述一部分的介面(例如描述用來產生對話框的介面元件)。

雖然你也能直接通過 Java 來建立使用者介面,不過透過 XML 描述檔來建立使用者介面相對更簡單,架構也更清晰,以後維護時更容易釐清問題。要使用這些介面元件,應透過 「R.java」 檔中自動產生的 「R」 類別來調用。

4. values/ 參數值(value)目錄 「values」 目錄包含所有使用 XML 格式的參數值描述檔,可以在此添加一些額外的資源如字串(很常用)、顏色、風格等。使用時也是透過 「R」 類別來調用。

Android 功能清單

5. AndroidManifest.xml

AndroidManifest.xml」 是 Android 程式的功能清單,應用程式在這裡列出該程式所提供的功能。當應用程式開啟時,會提供諸如內容提供者(ContentProvider)、處理的資料類型、實際運行的類別、跨應用程式的資訊等等訊息。 你可以在此指定你的應用程式會使用到的服務(諸如電話功能、網路功能、GPS功能等)。 當你新增一個頁面行為類別 (Activity) 時,你也需要先在此註冊這個新增的 Activity 類別後,才能順利調用。

參考資料

Android 應用程式的檔案組織方式與用途 http://developer.android.com/guide/appendix/faq/commontasks.html#filelist


[]AndroidUI 描述使用者介面

本文自动转发自我的博客: http://www.haofengjing.org/2545.html
將一份創意落實到可執行的應用程式,背後需要的是從閱讀與寫作程式碼中累積的經驗,並有堅持理念、直到完成的耐心。

表達使用者介面

我們可以先用前幾章教的方法設定並執行模擬器,看看模擬器運作後的結果。

我們看到一個文字欄位,上面有一串文字 「Hello World, Bmi!」。這就是 Android 預設程式架構的範例囉。

由於才剛開始實際接觸到 Android 應用程式,我們先從簡單的開始:這一節中,我們的目標是將 「Hello World, Bmi!」 換成別的文字。

那麼,「Hello World, Bmi!」,這串字串藏在哪裡呢?

先打開 「res/layout/main.xml」

    1  <?xml version="1.0" encoding="utf-8"?>      2  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      3     android:orientation="vertical"      4     android:layout_width="fill_parent"      5     android:layout_height="fill_parent"      6     >      7      <TextView       8          android:layout_width="fill_parent"      9          android:layout_height="wrap_content"      10        android:text="@string/hello"      11        />      12</LinearLayout>

原來「Hello World, Bmi!」字串就藏在「res/layout/main.xml」這個檔案的第 10 行中。我們只要簡單地將第 10 行修改成如下

android:text="Hello World, Bmi!"

再執行一次模擬器,就可以得到一個相似的應用程式,只是內文變成了我們剛剛修改的內容。

既然找到了「Hello World, Bmi!」字串,我們就試著將「android:text」屬性值從「Hello World, Bmi!」改成「哈囉,BMI」,然後執行看看吧。

android:text="哈囉,BMI"

結果發現 Android 模擬器中文嘛也通,字型也相當漂亮。

要開始學習 Android 應用程式確實很簡單吧?不過為了顯示「Hello World, Bmi」,也用到了許多程式碼。到底這些程式碼有什麼含意呢?

我們馬上來學習 「main.xml」這個 XML 介面描述檔的內涵吧。

Android 平台裡,使用者介面都是透過 ViewGroup 或 View 類別來顯示。ViewGroup 和 View 是 Android 平台上最基本的使用者介面表達單元。我們可以透過程式直接呼叫的方法,調用描繪使用者介面,將螢幕上顯示的介面元素,與構成應用程式主體的程式邏輯,混合在一起編寫。或是,也可以將介面顯示與程式邏輯分離,照著 Android 提供的這個較優雅的方式,使用 XML 描述檔,來描述介面元件的組織。

講解

我們看到的「Hello World, Bmi」就包含在「main.xml」 這個檔案中。 接著,我們就直接分部份來講解這個「main.xml」 檔案裡的內容:

第 1 行

    <?xml version="1.0" encoding="utf-8"?>

XML (Extensible Markup Language) 是一種標記描述語言,不管是語法還是看起來的樣子,都相當類似網頁所使用的 HTML 標記語言。XML 被廣泛地運用在 Java 程式的設定中。「main.xml」 文件裡,第一行是每個 XML 描述檔固定的開頭內容,用來指示這個文字檔案是以 XML格式描述的。

第 2, 6 與 12 行

    <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"></LinearLayout>

接著我們看到第一個標籤,與 HTML 網頁標籤相當類似。

    <LinearLayout></LinearLayout>

"線性版面配置"(LinearLayout)標籤,使用了兩個「LinearLayout」標籤,來表示一個介面元件的區塊。後頭的標籤前加上一個「/」符號來表示結束標籤。"線性版面配置" 所指的是包含在 「LinearLayout」 標籤中,所有元件的配置方式,是將一個接一個元件由上而下排隊排下來的意思。

     xmlns:android="http://schemas.android.com/apk/res/android"

xmlns 開頭的這串敘述,是用來宣告這個 XML 描述檔案的的名稱空間(NameSpace),後面接的URL(網址),表示這個描述檔案會參照到 Android 名稱空間提供的定義。 所有 Android 版面配置檔案的最外層標籤中,都必須包含這個屬性。

注意標籤需要兩兩對稱。一個標籤「

<linearlayout>
」在一串敘述的前頭,另一個標籤「
</linearlayout>
」在敘述的末尾。 如果你修改過的標籤沒有閉合(忘了加 <、/、> 等符號),Eclipse 畫面上也會出現小小的警示符號來提醒你。

第 3-5 行

    android:orientation="vertical"      android:layout_width="fill_parent"      android:layout_height="fill_parent"

這些包含在「

<linearlayout>
」標籤中的敘述被稱為「LinearLayout」標籤的「屬性」。Android 應用程式在 layout 目錄中的標籤,大多數的屬性前都有一個「android:」前綴。同一個介面元件的屬性之間,是以空白做區隔,因此事實上你也能將多個屬性寫在同一行。當然,將屬性排成多行更易於閱讀。我們應該保持這個好習慣。

介面元件都有許多共同的屬性,例如介面元件的長,寬度設定屬性。Android 介面元件的寬度、長度設定屬性分別叫做「android:layout_width」、「android:layout_height」。兩個都設定為 「fill_parent」參數值。「fill_parent」 如其名,所表達的的意思就是"填滿整個上層元件"。預設LinearLayout 介面元件就會佔滿整個螢幕空間。

介面元件彼此間也會有一些不同的屬性,例如 「LinearLayout」(線性版面配置) 標籤的「android:orientation」(版面走向) 屬性。在此填入 「vertical」 (垂直)屬性值,表示這個介面的版面配置方式是從上而下垂直地排列其內含的介面元件。

「android.view.ViewGroup」 是各種佈局配置(layout)元件的基礎類別。常見的實現有

LinearLayout(線性版面配置)、FrameLayout(框架版面配置)、TableLayout(表格版面配置)、AbsoluteLayout(絕對位置版面配置)、RelativeLayout(相對位置版面配置)等。

雖然有這麼多種版面配置方式可以選用,但大多數的應用程式並不需特地去改變預設的 LinearLayout 的配置,只要專注在其中填入需要的介面元件即可。所以從第 7 行之後的內容才是一般應用程式開發時較常修改之處。

第 7 和 11 行

    <TextView          />

TextView (文字檢視)是我們看到的第一個熟悉的介面元件。其作用是顯示文字到螢幕上。你可能注意到這個標籤結尾使用了 「/>」 符號。 「/>」符號表示這個XML敘述中沒有內文,亦即此介面元件描述中不再包含其他介面元件,也表示這個介面元件就是這個螢幕中最小的組成單元了。

第 8-10 行

    android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="Hello World, bmi"

我們來看看 TextView 介面元件中包含了哪些屬性。

「android: layout_width」和「android:layout_height」我們剛剛已經學過了,分別代表寬度跟長度。「android: layout_width」 的 「fill_parent」 參數值表示寬度填滿整個上層介面元件(即 LinearLayout 介面元件)。「android:layout_height」則是用上一個新的參數值「wrap_content」(包住內容),亦即隨著文字欄位行數的不同而改變這個介面元件的高度。最後的 「android:text」 屬性則是 TextView 介面元件的主要屬性,亦即文字欄位中顯示的文字內容。至於「@string/hello 」這段字串所代表的意義,馬上會接著在後面章節說明。我們現在已知道是:只要將「android:text」屬性內容替換成我們想要文字,在預覽畫面或在模擬器中就會顯示對應的文字。

將以上的 XML 描述綜合起來,我們就可以得知「main.xml」 想表達的介面。