仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1288|回复: 8
打印 上一主题 下一主题

[学习教程] IOS制作之怎样在Android中完成悬浮Activity仓酷云

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
语法弄明白@interface@property这些工具总要知道是干嘛的怎么用基础库一般来讲,为一款已优化过的手机APP开辟平板的版本也不是很难。利用Fragment、decomposeEntities等组件就能够又快又轻松地完成。可是,比来碰到一个项目就没有这么复杂了。我们不但要开辟一个平板APP(基于ActionBarSherlock库,也称作ABS),还必要完成以下功效:


  • 完成一个悬浮而且通明显现的Activity,如许用户在举行输出操纵的时分能够看到其余Activity大概它本人的窗口背景;
  • 保留悬浮的Activity的原始尺寸,包含程度偏向和竖直偏向;最好是Activity能够居中显现,在小尺寸设备上能够全屏显现,在年夜尺寸设备上最少显现2/3的巨细。
由于我们之前说过已有了一个开辟好的手机APP,以是假如为了讲这个从头计划再编码那就华侈工夫了。以下的解说和形貌都是基于已有的代码,经由过程修正Activity的完成来适配平板设备,已到达代码的最年夜使用率。

<br>

<br>
义务概述

这里次要有三个义务:


  • 盘算已有的Activity的尺寸并断定它的新坐标地位;
  • 使Activity通明,能够瞥见其背景;
  • 处置背景使其不克不及再和用户举行交互。
盘算窗口巨细

后面提到,我们必要以一个已有的手机APP为基本(利用了ActionBarSherlock库),这个库我们已以一个内部库的情势集成到项目中,并带有源代码。
假如对ABS的源码很熟习大概曾对原生ActionBar的构架有懂得,就会发明:假如改动Activity的巨细,那在挪用setContentView办法的时分,功效没有完成:ActionBar的巨细和地位都没有变更。这时候要做的就是在更高的级别里操纵,在体系绘制ActionBar的时分——ABS大概原生的ActionBar,这时候候还没有任何窗口的数据,如许我们就能够依照必要调剂了。
最不言而喻的体例就是改动Window的尺寸,以是这里必要以下这段代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Override
publicvoidonAttachedToWindow(){
super.onAttachedToWindow();
if(getResources().getBoolean(R.bool.is_tablet)&&mOpenAsSmallWindow){
finalViewview=getWindow().getDecorView();
finalWindowManager.LayoutParamslp=(WindowManager.LayoutParams)view.getLayoutParams();
lp.gravity=Gravity.CENTER;
lp.width=mActivityWindowWidth;
lp.height=mActivityWindowHeight;
getWindowManager().updateViewLayout(view,lp);
}
}

代码实行终了后,就能够看到窗口的巨细已依据mActivityWindowWidth和mActivityWindowHeight的值产生了改动。
is_tablet反省只对平板无效,mOpenAsSmallWindow标识暗示是不是让窗口全屏显现大概是不是作为新的窗口衬着。
假如在运转的时分报错了,毛病日记是:ActionBarViewcanonlybeusedwithandroid:layout_width="match_parent"(orfill_parent).那不必忧虑,我们有ABS的源码,间接修正源码就能够了。
翻开ActionBarView这个文件,然后再onMeasure办法里把抛出的非常正文失落——如许应当就能够办理成绩了。安卓上利用的是对照特别的权限把持机制,以是这里我们能够持续深切的未几,大概还能大略盘算菜单项等,不外良多工具我们都不成把控。
注重:这个办法没有在原生ActionBar上测试,由于这里只是在作者的Android版本中测试过。假如要禁用ActionBar,必要找到ActionBarSherlock这个类,然后正文失落以下这行代码:
1
//registerImplementation(ActionBarSherlockNative.class);

代码运转应当没成绩,然后就能够看到不通明背景的Activity了。

<br>
增加通明功效

在完成了Activity的尺寸和巨细都改动后,如今就要让它通明了。能够给这个平板上的Activity主题增加这个属性:
1
<itemname="android:windowIsTranslucent">true</item>

这个属性值可使Activity背景通明。

<br>
看起来不错,效果已基础完成了。
另有一个小成绩:以上测试的都是在Nexus7android4.3上实行,而这个App在Nexus7的android4.2版本中,Activity没有显现。

关于UIView的子类有很多UIButtonUITableView这个都需要各个击破看看文档从名字上就很容易理解是做什么的UIViewController是管理View和Model的类(@张开说UIViewController是用来管理view的,管理model的类自己写,当然,model也可以用UIViewController来管理,不过恐怕成为不好的代码。
山那边是海 该用户已被删除
沙发
发表于 2015-1-21 07:24:05 | 只看该作者
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-30 11:04:15 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-6 10:22:13 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
小魔女 该用户已被删除
5#
发表于 2015-2-15 22:58:04 | 只看该作者
其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。
admin 该用户已被删除
6#
发表于 2015-3-10 19:56:03 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
蒙在股里 该用户已被删除
7#
发表于 2015-3-11 07:23:00 | 只看该作者
在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。
莫相离 该用户已被删除
8#
发表于 2015-3-17 23:09:09 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
小女巫 该用户已被删除
9#
发表于 2015-3-25 06:01:16 | 只看该作者
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表