手机和平板电脑目标的不同控制器

Rom*_*iel 5 android tablet android-activity

有没有办法为一个 Android 应用程序使用两个不同的 Java 代码?一种针对手机设备,另一种针对平板电脑设备。

例如,像 HomeActivity.java 和 HomeActivity-large.java 这样的东西

基本上我想制作一个具有不同分辨率的Android应用程序。

我知道我可以使用 layout-large 来为大型设备设置特定的布局。我不确定如何为平板电脑设置一个特定的逻辑,而为手机目标设置另一个逻辑。

我想这样做的原因是我想在屏幕上进行 API 调用,而我不想在电话上进行。

作为另一种方式,我考虑使用布尔值(我不确定是哪个)来测试应用程序正在运行的设备类型。但我担心它会变得混乱。

另一件事可能是使用我的应用程序的所有功能制作一个库,然后使用该库的两个不同的应用程序。该解决方案的问题在于某些代码会被复制。

有什么建议吗?

Tod*_*ses 3

选项 1:要让一个项目编译为一个或多个应用程序,您需要使用条件编译。基本上是这样的

//#ifdef Phone
// do something here
//#else Tablet
// do something else
//#endif
Run Code Online (Sandbox Code Playgroud)

请参阅Java (Eclipse) - 条件编译 ,了解如何在 Eclipse 中为 Android 进行条件编译。

选项 2:您可以在运行时测试屏幕尺寸以确定要显示的 UI。看:

http://developer.android.com/guide/practices/screens_support.html

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp
Run Code Online (Sandbox Code Playgroud)