UI设计的学习是从软件的基础开始,逐渐过渡到工作和实际应用上:视觉设计主要介绍UI行业基础知识,PS软件,AI软件,合成海报,不同风格海报制作,印刷常识,综合修图与调色。
很多人选择学习设计其实都是三分钟热度,最好在学习之前先来做一个小测试
→点击测试我适不适合学设计
然后是品牌设计,主要介绍造型基础,插画人物及场景设计,现代设计构成,版式设计,字体创意,品牌,CIS,品牌标志,吉祥物设计,商业创意,海报招贴,展架,DM单,折页与画册设计,ID软件。
再进一步学习电商设计包括电商行业,产品拍摄,后期精修,主图,详情页,C4D三维场景,商业合成,文案策划,专题页,营销策划,推广图。
综合起来就是UI交互设计的学习。包括Sketch,图标设计使用场景与设计规范,运营banner组件化与活动胶囊设计,瓷片区与结构流设计,移动端界面强化,启动页设计,IP置入,引导页设计,ASO市场推广页设计,弹窗设计,PC端设计,项目流程,用户体验,全局交互,设计趋势,风格定位,Material设计语言,公众号,小程序,切图标注,AE,情感动效。实践出真知,学完了所有知识之后还要培养自己的项目实训能力。
天琥UI设计,天琥汇集了大批年轻设计师及计算机软硬件专家,精湛的专业技术水平,加上教育工作者的社会责任感和敬业精神。我们组建了一支极富梦想,充满活力与激情的队伍,我们的目标是提供的技术培训服务,并且打造设计培训业的超值版。
作者:zchening
链接:https://wwwzhihucom/question/20392319/answer/18713362
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
想清以下三点:
首先想清楚,你的微信公众号是不是有明确的定位:给谁看的,订阅了有什么用
没钱没名气没资源的个人劝你还是想清楚要不要做微信公号营销推广,真正操作起来你会发现这个比想象得难得多,微博上因为从众效应可以引起广泛传播,但微信不同,微信就是个闭环,所以你所有的粉丝都得通过微博等其他媒介来吸引,而且机构、企业因为资金、资源等相对充分,上量要快得多
别相信所谓的微信粉丝3天过万技巧,老子都试过,纯TM扯淡!摇一摇、漂流瓶那种方式根本没人理你!大家都在摇妹子呢,你TM发个垃圾信息,谁鸟你啊!
--------------------------------------------------------干货开始----------------------------------------------------------------
微信50版本把微信公众号折叠到订阅号和服务号里,很多媒体人很失落。这个话题比较宏观,我就不掺和了,说说我自己是怎么运营公众号的,这些是我在实际运营过程中总结出来的一些经验,肯定还有不完善的地方,但或许可以给大家一些启发:大的宏观机制你无法改变,但你可以把注意力放到产品(微信公众号)上,多想想怎么做好内容和用户互动。
作为互联网从业人员,尤其是PM和设计师更需要对新鲜事物保持敏感、好奇和深入思考。申请公众账号的初衷,就是为了学习思考产品逻辑,因为只有不断去用,去尝试,才会了解为什么这样设计,是不是还有不够方便完善的地方。另外,也是因为自己平时更多侧重产品设计,对于产品的运营推广接触比较少,希望借此机会来提升产品运营能力,纸上得来终觉浅,绝知此事要躬行,只有实践才能出真知。开设公众号以来源源不断的有朋友鼓励支持我,有认识的,也有不认识的,有以前的同事朋友。我很用心的做,投入了大量时间和精力、情感,虽然上班已经挺累了,但因为这个公号需要准备素材周末大多数时间是宅在家里思考、读书和写作,希望给大家一些有用的启发。因为公号也认识了各种有趣的朋友,领略了原本永远不会了解的诸多精彩。如果一开始的目的单纯是学习,现在已经把「设计湿了没」当做自己的产品来做,仿佛是一款融入我自己血液的孩子,细心的呵护他,看他长大,其中的收获无法用语言来表达。前天周六又一个朋友给我发消息,摘录如下:
Hello,不知怎么称呼你呢,暂时称呼你为关怀哥吧(不要介意哦)。下午无意间看了你的文章我是怎么把微信运营做到极致的,看了很感动很受用啊,真心话来的。受用就不解释了,感动其一是因为关怀哥你身上真正的客户-朋友观和产品中浓浓的人情味。其二感动是因为我发现一个和你是一个和我很像的人,之前我一直认为人文关怀是这个世界很重要的品质,可是长大愈来发现这品质的排序已经被金钱、名利、成功挤下去了,甚至讲关怀都被认为是矫情,于是我渐渐怀疑我的初衷。但是很庆幸能够读到你的文章,让我知道成功并不仅仅靠天赋和逻辑思维等硬能力,人文关怀的软能力亦可以受用。简而言之,虽然只读了一篇文章,但是我觉得你是一个令我尊敬的PM,我希望能够从你那里汲取更多的人文关怀。也由衷的跟你说一声谢谢。
说实话,每每看到这么一大段的鼓励和认可,想着他们在狭小的手机屏幕上敲下这么长的一段话该是多么不容易,感激之情不禁油然而生。在此向这位朋友,也向所有曾经鼓励、帮助我的同事、朋友以及关注我或认识或不认识的朋友表达一份谢意,我只是尝试去做一些我觉得能让这个世界更有趣的事情,恰好能给别人带来一些温暖和小确幸,我也感到非常荣幸,谢谢你们的鼓励,这将是我继续前行最大的动力。结合自己这段时间运营微信的经验写了篇微信运营的心得《我是怎么把微信运营做到极致的》在网络上引起了大量关注,钛媒体、雷锋网、创业邦、搜狐IT、互联网的一些事等很多媒体都发表或者转载了。很多朋友说你怎么运营微信这么好,我想说的是,首先感谢大家的关注,但请大家不要神化我,我就是个普通的产品经理,不过对这个事情感兴趣,吃饭、睡觉、乘公交车等都在琢磨怎么做得更好,比大家多花了点时间而已,没什么神秘的,之所以分享出来也是希望自己的经验对大家有些帮助,尤其是可以结识更多的产品经理
一、营销推广
1、话题营销
营销的本质是制造差异,有了差异才有传播点。推广自己的微信公众号需要贴二维码,但微信公众号有上万,怎么让自己的二维码脱颖而出呢?后来看到别人的二维码都是静态不会动的,于是我就决定让我的二维码要动起来,这样一下子就和别人不一样了。别人的二维码都不够屌,我的二维码就要够屌够有趣。于是有了下面这个二维码,我在微博里传播,有人神回复:“很屌的二维码,它教会我们,不要只顾着打炮,看好自己的鸟。。。”所以,只要你的东西有趣,具备话题点,就有人帮你传播。我在某BBS论坛贴了这个二维码,起了个“雷人”的标题吸引眼球,结果竟然收到了七百多个回复!
2、事件营销
比如微信50出来时打飞机非常火,我在知乎回答了微信 50 里的打飞机游戏是谁做的,几小时就获得了上百的赞同,我就迅速在微信里面组织了微信打飞机的技巧等做成一个专题,并在知乎里面提示关注并回复“八卦”了解更多打飞机背后的八卦、技巧,从而把大量关注这个问题的知乎用户引流到我的微信里。这个时候就考验你对事件是否足够敏感,是否具备好的执行力。
3、渠道推广
上面的二维码容易吸引眼球,但无法表达我的微信公众号的一些内涵,于是我又设计了如下公众号,同样要求与众不同。你可以看到二维码中写着“好设计,更有爱”,边上还有一个iPhone手机,手机中的笑脸象征着有爱,灯泡象征着创意和灵感,手机标识表明关注移动互联网,右侧画着拿着工具的猿人,隐喻使用工具(思考)让猿从动物进化为人,希望能引发大家对设计、对体验的思考,做出有爱的好设计,一起进化。
明确你的受众群体,比如我的受众群体就是产品经理和设计师,所以我就在产品经理QQ群里面推广,当然方法很重要,那些很生硬的广告即使群主不T你,别人也不会看。我整理了一个产品经理必读书籍系列然后上传到网盘、包括QQ群共享里,甚至群邮件里。发群邮件里措辞很重要,不然会被群主屏蔽掉,有两点要注意:第一你的东西确实对大家有帮助,第二就是措辞,表达出来这个东西怎么对大家有帮助,而不是一味宣传自己。我在PDF的页脚上加上水印。一开始加的是文字水印,后来发现单纯的文字不能引起视觉上的刺激,就添加了一些小。包括措辞也不断修改,最初的版本告诉用户关注我的微信公众号有什么什么好处,然后仔细想想这个完全是站在我自己的角度,我希望他关注微信号,应该换位思考,告诉他想要什么什么(这个什么必须是他感兴趣的)只要关注我的微信号即可。虽然只是调整了句子的结构,虽然是一个意思,但却是思维模式的改变。就是通过这样的方式不断的迭代修改。在极客公园、钛媒体等科技媒体发表文章,还有我自己的微博背景图、个人介绍甚至邮件签名里都会贴上二维码或微信号。文章质量高传播广也能带来一定量的用户。其他渠道虽然短时间内不能带来大量用户,但这是个细水长流的过程,积少成多。
(4)把握机会
要主动把握各种机会推广,有时候一次卓越的策划或者成功的合作往往可以带来出乎意料的效果。大多数公众号合作推广通常选择互推,列出来一堆公众号,然后让你去关注。我觉得这是广告的最低境界,硬生生地晒到用户面前,也不管他当前在干嘛,是不是喜欢,所以转化率极低。我一直深信,好的内容加上适当的营销技巧,可以事半功倍。因此当和「最美应用」合作时,我选择了在内容层面合作,介绍了一款好玩的创意APP,同时在案例介绍时特意选择了苍老师,这样内容传播的时候更容易引爆。这次合作给我带来了比较大的关注。
有时候危机利用得好也能转化为机会。一次在工作上出了个小差池,大家误以为是我的错,但很难解释清楚,何况别人还会认为你在推脱责任,大家说要暴打我,我就顺势承认了,然后把暴打神经猫的游戏改成了暴打XX(XX为我的名字),发给同事们玩,同事觉得很好玩,顺便还关注了。既消除了误会,溶蚀还推广了我的公众号,我真机智。
二、用户互动
吸引了用户只是第一步,是基础,吸引来用户,还要用好的内容和互动把用户真正留住,这个是长期的过程,但也有一些技巧可循。我个人是把微信号当做产品来做,把粉丝当做自己的用户和朋友来对待,我个人更喜欢称他们为我的用户,而非粉丝,因为粉丝的称呼好像感觉他是仰视你的。但用户则是平等的。
1、重视每个用户
**寿司之神里面说,如果你喜欢你的工作,你就会不知疲倦,从里面获得成就感和满足。每个原材料你都会挑选最好的,每到工序你都会不断思考怎么做得更好,给用户带去更完美的寿司。其实做产品也是相同的,你从用户大段的回复中、从阅读、认可甚至挑战你的观点,你都会获得满足。之前我在某科技网站上发表了一篇文章,一些观点有个用户不认可,半夜12点给我发了四条建议,1000千多个字,措辞也很不友好,一开始我很生气,觉得对方挑衅我,立即逐条反驳。后来仔细想想,自己其实做的不对,别人半夜十二点来给你提建议,无论对与不对,你都应当静下来来想想。何况我的观点不一定是正确的。对于用户的消息我会尽量做到每个用户必回,如果粉丝数过多做不到也要都看过,并统一向他们解释意见都看过了。尤其是大段的文字回复,看到的时候很感动。要知道,手机上输入很不方便,但用户输入这么多文字,就是对你的认可,或者对你提出衷心的建议。当发现用户发重复消息时(通常意味着他很无聊),我给他讲笑话。当有些用户升级iOS7丢失了一些微信表情,我找来下载地址发给他。对用户的声音及时反馈。因为微信后台的限制:必须电脑登录,所以他们回复而我又不在电脑旁时,我就设定了自动回复,让他们可以有急事可以私信我的微博,因为微博随时随地用手机就可以上。
(2)突出个人风格
媒体网站会尽量移除个人风格,但这却恰恰是个人运营的公众号最大的特色:告诉他们你个人的想法、状态等,这样用户感觉到呈现在自己面前的是有个性的人。这是一个信仰缺失的年代,这个时代的用户和消费者比以往任何时候都渴望得到认可。这也是为什么像海底捞、黄太吉、三只松鼠坚果等越来越多商家因为卓越的体验而成功。这是时代和社会的大势。大家已经厌倦了诸如“你的意见我们已经记录,谢谢反馈”之类的冷冰冰的毫无感情的套话、官方答复。比如上次杭州暴雨,我在推送的文章末尾提醒大家路上积水很深,回家注意安全。虽然这种提醒不一定有实际用处,但是他们能感觉到有人在关心他们,他随手关注了一个微信号却获得了一个从未见过面的人温馨的提醒,内心是温暖的。
(3)超越预期
之前曾设计过一个我曾经引导关注页面,标题使用卖萌的方式,用路飞的形象说:“伦家真的是个好玩的账号啦,关注一下下好不好嘛~”。但用户停留1~2秒就会发现,手机屏幕底部上有颗小虫一直爬进爬出,不仔细看还以为是真的小虫,实际上是页面上的一个动态。用户出于好奇会上滑屏幕,然后会发现原来下方还有文字,竟然是我隐藏的一个彩蛋,被他发现了,他会很开心。因为藏得这么隐蔽还是被他发现了,引导页超越了他的预期,有惊喜。
前段时间在微信里搞了个关注送书活动,说给他们送出我个人很喜欢的《简约至上》,讲交互设计的。后来筛选出名单后,另外给每人额外赠送了一套彩色的长尾夹,还有一张明信片,虽然这增加了我的时间和金钱成本,但却可以给他们带来惊喜。后来活动结束了有个朋友知道了,就关注了我微信来问:“请问,您之前赠阅的《简约至上》还有没有呢?我好感兴趣”虽然活动已经结束了,但我还是单独买了一本送给她!如果多花几块钱可以让这个朋友对感到很满足,何乐而不为呢?这个和老罗买手机送给热心的朋友刷锤子OS是一个道理,当然我是后来才想到两者异曲同工。
(4)用户参与感
上面的明信片其实也有很多值得说道的地方。首先这个是很有意思的微信刮刮卡明信片,我把自己的祝福写在明信片的绿色的微信语音泡泡上(因为是通过微信结识的所以采用微信泡泡明信片的方式),对方只有刮开才能看到,感觉跟买**一样带有悬念。我在写祝福的时候就在想,我收到怎么样的明信片才会惊喜呢?然后不断琢磨,想到每个用户都是与众不同的个体,要给他们打造独一无二的体验。明信片的邮编0我都画成了表情符号,在明信片里把写上了来自“你猜多少”公里外的祝福。因为每个人和我的空间距离是不一样的,这样他们可以感受到我这份明信片是专门写给他的。我在每张明信片的末尾会写上我的名字,其实就是为了告诉他们公众号后面的我是个有姓有名的人。在寄出后,我会告诉他们,让他们有所期待。这个活动相当成功,收到明信片的不少朋友都热情地回复我:“Wow,挺有趣,此时此刻的心情:小确幸。真的不会想到能收到陌生人这么有心的一份礼物~又相信世界充满爱了。”有个朋友说在心情不好的时候收到你的书和明信片真是温暖,甚至还有人不舍得刮开。你看你花时间做了个事,却给别人带来了这么多温暖。其实他们不知道的是他们也给我带来了快乐,看到自己的劳动成果能得到他们的认可,这是一种莫大的幸福。制造悬念,是为了调动用户的好奇心,让他们更积极的参与互动,让一切变得好玩。包括利用微信本身的一些彩蛋来互动。
利用用户的好奇心和逆反心理,达到的效果会比一本正经更好。比如你希望用户点击公众号下的菜单可以这样说:“千万不要点击下面的菜单,人类的好奇心已经害死好多只喵星人了”。利用一些现代的词汇消除隔在公众号作者和用户之前的无形的墙,诸如:“你家里人造吗?骚年,强撸灰飞烟灭”之类的词语制造轻松有趣氛围。公众号之前用开发模式做了一个查天气的功能。查天气本身很普通,但我把它包装成算命先生,比如“老夫昨日夜观天象,掐指一算:杭州今日必有小于,东北风,风力三级,气温12-18度。,建议阁下可穿牛仔裤”。一个很普通的东西经过改造可以给用户带来新鲜有趣的体验,当然前提是你得先有这种意识。
如果公众号里面有一些新功能体验,也会发到微信和QQ群,征询粉丝的建议,提了建议的会感谢粉丝,让他积极参与其中。
(5)体验闭环
小游戏(一夜几次郎、约会合体、蛋疼互动)
此前有款叫“围住神经猫”的游戏爆红微信朋友圈,上线48小时PV就突破上千万,微信朋友圈就起了推波阻拦的作用。为了充分利用这一股网络手游的潮流,做了一系列小游戏。同时为了保证游戏的体验和完整度,游戏不要一开始强制用户关注才能玩,而要在他最爽或者需要的时候引导关注(比如青蛙过河这个应用,在用户失败了告诉他有个秘籍,关注后就可以通过,问他要不要关注,这个时候他关注的愿意就非常强烈。因为不能过这个游戏很难受,他放不下),最终形成一个关注闭环。
互动链条,比如刚关注的时候给他发什么文字,他回复之后给他发什么,是不是能吸引他互动下去,他不回复那肯定是效果不好,那就不断调整(调整文案,调整互动方式)。另外要模拟用户的行为去关注,去互动,这样你才能完整地获得他的体验。
(6)关注细节
细节其实很重要,虽然不少细节你做了,但用户并不知道你的考虑或者背后的故事。上面的明信片原本我可以直接夹在书里寄过去,但我特意在给每个明信片套了个信封或者保护袋,为什么?绝大多数粉丝他们不知道,以为我随手为之。其实我是担心刮刮卡外面的涂层在物流运输过程中碰撞被挂掉,完全影响了他们收到卡片时的心情。我所有推送的文章,都要先发给自己测试,从标题、措辞、排版、的选择等等,每个细节都力求做到最好,所有的都会先发到自己手机上预览,有时候一篇文章要发给自己测十多遍。不用过多的图,在不影响阅读的体验下尽量压缩,避免加载时间过长用户中途就放弃了。在文章里面发些很酷的配图,要和文章主题有关系,这样粉丝们更愿意看,首先看图就吸引住眼球了,接下来才是文章质量。在文章里面突出重点,文章过长有时候用户会被各种事情打断,也不一定有耐心看,这时候突出重点,把纲领性的话和重要的句子通过字体加粗、变大等方式凸显出来,节省用户的时间。
之前那张海贼王路飞的关注引导界面,我给自己发了几十张,调试下面的gif图,下载的gif背景(纯白色)和手机上的背景颜色不一样很难看,就一桢一桢地调整。作为一个产品经理,自己要能冲到第一线,熬了无数个日夜,去调试、修改代码。
-坚持,每天发一篇文章其实要坚持很难,找材料、整理素材、修改文章、调整等都要花不少时间,遇到gif多的更麻烦,但这个是必须的,没有捷径可言。每天分享就保证了账号是活的,文章分享会带来新粉丝。但真并不意味着可以敷衍了事,虽然耗费精力,但还是要保证质量,一篇好的文章分享量有时候会比一篇一般的文章高出4~5倍。每天八点钟送达用户的手机,大多数时候这类工作长期坚持还是蛮痛苦的,但每每看到用户在后台的鼓励,就觉得这一切付出都是值得的。很多粉丝的人气超乎你的想象,比如有一位粉丝朋友每天早上8点左右都往我卡里打05元。
三、迭代优化
根据数据不断迭代改进产品是不少互联网产品改善自己的重要途径。如果把一个微信号比喻成一个产品,就应当关注每日净增关注人数、取消关注人数,文章分享数量的变化及原因,对于特殊的情况要及时作出反馈,比如因为国内某互联网公司CEO转发了一篇文章到朋友圈,结果粉丝数量暴涨,这个时候你就需要作出反应,多抽出时间在后台及时回复别人,让用户留存下来。
从数据中总结受众和受欢迎的文章,比如我就把自己开设以来分享最多的文章按照分享数量仔仔细细一篇篇看下来,为什么这些文章最受欢迎,有什么值得以后写的时候借鉴的。
善用已有数据帮助决策,因为实在业余时间维护公众号,个人时间和精力有限,要每天原创一篇文章非常不容易,况且上面的游戏之类也耗费了我大量精力,所以会从网上去筛选文章,有一段时间发现文章的分享数量不高,仔细看了这些文章来源,原文就分享不多。后来去筛选文章的时候,就会尽量挑浏览次数、评论、赞或者喜欢次数最多的文章,后来整体的平均分享人数比之前多出好多。
最后,公众号做的怎么样,要看你花了多少时间和心思,多动脑筋,不要把他们当做粉丝,把他们当朋友去对待,一切都简单得多,你也能从中获得快乐。好了,哥给你传授了这么多独家秘笈,顺手点个赞关注下吧,
基本上现在所有的应用都会有一个欢迎界面,在欢迎界面对应用做一个整体的介绍,然后在跳入到主界面,这次要说的这个引导页就是带翻页的引导页。效果如下所示
概要实现
主要分为两部分功能,一个是翻页效果,一个是页面位置指示器。为了实现翻页效果我采用系统自带的ViewPager对象来实现;页面指示器则通过一个LinearLayout在其中放置相应个数的,然后根据页面的滑动动态修改各个的资源。布局文件如下所示
复制代码
1 <RelativeLayout xmlns:android="http://schemasandroidcom/apk/res/android"
2 xmlns:tools="http://schemasandroidcom/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 tools:context="MainActivity" >
6
7 <androidsupportv4viewViewPager
8 xmlns:android="http://schemasandroidcom/apk/res/android"
9 android:id="@+id/welcome_pager"
10 android:layout_width="match_parent"
11 android:layout_height="match_parent" />
12
13 <!-- 位置指示器 -->
14 <LinearLayout
15 android:id="@+id/director"
16 android:layout_width="match_parent"
17 android:layout_height="wrap_content"
18 android:gravity="center_horizontal"
19 android:orientation="horizontal"
20 android:layout_marginBottom="15dip"
21 android:layout_alignParentBottom="true"
22 >
23
24 <ImageView
25 android:layout_width="wrap_content"
26 android:layout_height="wrap_content"
27 android:background="@drawable/pageindicator_on" />
28
29 <ImageView
30 android:layout_width="wrap_content"
31 android:layout_height="wrap_content"
32 android:background="@drawable/pageindicator_off" />
33
34 <ImageView
35 android:layout_width="wrap_content"
36 android:layout_height="wrap_content"
37 android:background="@drawable/pageindicator_off" />
38
39 <ImageView
40 android:layout_width="wrap_content"
41 android:layout_height="wrap_content"
42 android:background="@drawable/pageindicator_off" />
43 </LinearLayout>
44
45 </RelativeLayout>
复制代码
ViewPager
先来看下官方解释:Layout manager that allows the user to flip left and right through pages of data意思是说,Viewpage是一个允许用户在多个页面数据之间通过左滑或者右滑的方式切换页面数据的布局管理器。
主要功能点有两部分,数据适配器Adapter,和事件监听器OnPageChangeListener。数据适配器用来管理这个ViewPager对象的显示内容,而OnPageChangeListener用来处理当页面切换的时候的行为动作,我修改页面指示器就是通过这个事件来完成的。
适配器
复制代码
1 class pagerAdapter extends FragmentPagerAdapter{
2
3 public pagerAdapter(FragmentManager fm) {
4 super(fm);
5 }
6
7 @Override
8 public Fragment getItem(int arg0) {
9 //得到要显示的对象并初始化
10 WelcomeFragment fm = new WelcomeFragment();
11 fmsetImg(imgsget(arg0));
12
13 return fm;
14 }
15
16 @Override
17 public int getCount() {
18 return imgssize();
19 }
20
21 }
复制代码
上面这段就是ViewPager要用的适配器了,其中imgs是一个id数组,存放了要在欢迎界面展示的的id,WelcomeFragment是一个Fragment类,用来展示页面内容,这两个代码会在完整代码中体现。两个方法需要实现,getCout,用来表示有多少个页面;getItem,用来获取指定位置的Pager对象。
imgs数组定义及实现:
复制代码
1 List<Integer> imgs = null;
2 //初始化欢迎界面数组
3 imgs = new ArrayList<Integer>();
4 imgsadd(Rdrawablehelp1);
5 imgsadd(Rdrawablehelp2);
6 imgsadd(Rdrawablehelp3);
7 imgsadd(Rdrawablehelp4);
复制代码
WelcomeFragment类定义
复制代码
1 public class WelcomeFragment extends Fragment {
2
3 View view = null;
4 int imgId ;
5 @Override
6 public View onCreateView(LayoutInflater inflater, ViewGroup container,
7 Bundle savedInstanceState) {
8 view = inflaterinflate(Rlayoutwelcome_fragment, null);
9
10 ImageView fragmentVw = (ImageView) viewfindViewById(Ridwelcome_Img);
11 fragmentVwsetBackgroundResource(imgId);
12 return view;
13 }
14
15 /
16 为该Fragment设置显示
17 /
18 public void setImg(int imgID){
19
20 imgId = imgID;
21 }
22 }
复制代码
WelcomeFragment布局文件
复制代码
1 <FrameLayout xmlns:android="http://schemasandroidcom/apk/res/android"
2 android:layout_width="match_parent"
3 android:layout_height="match_parent" >
4
5 <ImageView
6 android:id="@+id/welcome_Img"
7 android:contentDescription="welcome"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent" />
10
11 </FrameLayout>
复制代码
事件监听器OnPageChangeListener
这个监听器用来监听页面切换事件,实现这个接口用来处理页面切换时,页面指示器跟着改变状态。实现代码如下
复制代码
1 /
2 页面切换的事件监听器
3 /
4 class pageChangeListener implements OnPageChangeListener{
5
6 /
7 当某一个页面被选中的时候触发
8 /
9 @Override
10 public void onPageSelected(int arg0) {
11 int count = directorLayoutgetChildCount();
12 /
13 指示器自对象顺序和页面显示顺序一样的设置为on,其余的设置为off
14 /
15 for(int i=0;i<count;i++){
16 ImageView iv = (ImageView) directorLayoutgetChildAt(i);
17 if(i == arg0){
18 ivsetBackgroundResource(Rdrawablepageindicator_on);
19 }else{
20 ivsetBackgroundResource(Rdrawablepageindicator_off);
21 }
22 }
23 }
24
25 @Override
26 public void onPageScrolled(int arg0, float arg1, int arg2) {
27 // TODO Auto-generated method stub
28 }
29
30 @Override
31 public void onPageScrollStateChanged(int arg0) {
32 // TODO Auto-generated method stub
33 }
34 }
基本上每个IOS APP都会有新手引导页面这个功能,常规的就是几张静态,可以左右滚动。既然涉及到,就肯定会存在适配的问题(为了达到最优的体验效果,一般都会针对不同的分辨率设计不同尺寸的),本文主要就是讨论如何适配的问题。
21 方案一
根据屏幕分辨率的不同,使用不同的。
22 方案二
熟悉IOS开发的人都知道,每一个ios项目中,都有一个Assetsxcassets文件夹,用来管理项目中所有的(AppIcon、LaunchImage、其他业务)。
从上面的截图我们可以看到,xcode提供了两个内置的类型AppIcon、LaunchImage。我们只要提供正确尺寸的,ios系统就能在不同分辨率的设备上使用对应的而无需我们自己指定;另外就是我们自己创建的(avatar),提供2x、3x这两种类型的即可(1x的设备现在基本上找不到了,而且当前的ios系统也不支持1x的设备)。那么问题来了,我们自己创建的集合,只有3个类型(1x、2x、3x),并不能按照分辨率来设定。再看一下上面的截图,有一个“show”的集合,形式如下:
咦!这个鬼东西是怎么搞出来的?我们先看看Assetsxcassets文件夹在硬盘上的组织形式:
从上图我们可以看到,系统内置的两种类型AppIcon、LaunchImage对于的文件夹为AppIconappiconset、LaunchImagelaunchimage,我们自己创建的集合avatar对应的文件夹为avatarimageset。讲到这里,你应该大概猜到了show这个集合是怎么创建出来了吧?
1、先创建一个LaunchImage类型的集合;
2、修改名称(LaunchImage→show)
3、修改文件夹名称(showlaunchimage→showimageset)
回到正题,在show这个集合里面,我们就可以轻松的根据分辨率设置2x、3x类型的。
现在我们可以按照下图的方式使用新手引导了:
亲测:不同分辨率的设备,展示对应的。
我们注意到,showimageset文件夹中有一个文件Contentsjson,正是这个文件,ios系统才能根据设备类型展示对应的资源。Contentsjson文件内容如下:
系统展示的时候,会先解析这个文件,然后根据设备的分辨率,找到对应的。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)