小编scr*_*pse的帖子

为什么声明一个函数参数是最终的?

我目前正在通过Sams出版的"24小时自学Android应用程序开发"一书.我对Java,Android或其他方面比较陌生.我在ActionScript 3中有一个非常扎实的背景,它与Java有足够的相似之处,语言本身并不难理解,但我仍然对本书中某些代码示例背后的基本原理有一些疑问.例如,这是第9小时的示例代码附带的函数:

private void processScores(final TableLayout scoreTable, 
      XmlResourceParser scores) throws IOException, XmlPullParserException{
Run Code Online (Sandbox Code Playgroud)

在此函数签名中,作者已将scoreTable参数声明为final.我有点不解为什么他们这样做了.即使尝试为函数参数scoreTable分配一个新值,也不会让我想到这一点(在ActionScript中它被认为是一种不好的做法).此外,我还没有看到任何人在我检查或移植到AS3中的任何真实Java中都这样做.

有没有关于Android开发的具体内容,有时需要将某些函数参数声明为final?

为什么TableLayout对象声明为final,而不是XmlResourceParser?

java android final

56
推荐指数
1
解决办法
3万
查看次数

如何在AndroidManifest.xml中指定要禁止在小于4.7英寸设备的设备上安装?

我的游戏在7英寸平板电脑上感觉最好,在10英寸平板电脑和5英寸三星Note尺寸设备上感觉非常好.对于像Nexus 4手机或S3这样大小的东西,它甚至可以玩得很开心.玩任何小东西都没有任何乐趣.在这种情况下,如何编写Manifest,以便它可以安装在从4.7英寸设备到10英寸平板电脑的任何设备上,同时受到小型手机的限制?

编辑

回过头来看,这个问题的原因是因为我发现Android开发者网站上的文档令人难以置信地混淆和冲突.让我们举一些例子来说明混乱的来源:

我们以几个不同的设备为例.

机器人3

  • 4英寸显示屏
  • 540x960像素
  • 275 ppi

查看支持屏幕的文档,我们可以推断......

  • 在4英寸处,它可能位于"大"的裸露边缘,但可能是中等的
  • 在540x960,它在"大"的最小值范围内
  • 在275 ppi,它声称是一个hdpi屏幕

但是,这个设备比我想要支持的设备要小得多......但是文档看起来像3个计数中的2个,这个设备有一个"大"屏幕.对这个术语没有明确的定义是一个4英寸的屏幕"大".现在,让我们走得更远......

Nexus 4

  • 4.7英寸显示屏
  • 768x1280像素
  • 318 ppi

查看支持屏幕的文档,我们可以推断......

  • 此屏幕的物理尺寸位于"中"和"大"的边框上
  • 像素尺寸表示它可能是xlarge
  • ppi表明它是一个xhdpi设备

再一次,没有理智的定义是一个4.7英寸的屏幕"xlarge"...屏幕的大小可能只是足够大,使游戏愉快,但它是一个"中等"屏幕?一个"大"的屏幕?你怎么可能知道?

这两款手机都是"中型"吗?当Nexus"大"时,Droid会"中等"吗?为什么或者为什么不?如果Nexus是"大",那么这与7英寸平板电脑有什么不同,这也应该是"大?"

然后事实是文档声称支持屏幕/大小从3.2开始被弃用

但是,如果想要支持旧手机(假设适当的物理屏幕尺寸,以英寸为单位)和新平板电脑,或者如果它在树林中隐藏得很好,那么就没有明确指导如何使用它.有人可以清楚地说明 cretieria真正重要的是什么,为什么给定的设备适合给定的过滤器或失败?

android android-manifest screen-size google-play

12
推荐指数
2
解决办法
6524
查看次数

如何使用pdf.js呈现pdf文件?

我创建了一个html文件,内容如下 index.html

<html>
  <head>
    <script type="text/javascript" src="./pdf.js"></script>
    <script type="text/javascript" src="./hello.js"></script>
  </head>
  <body>
    <canvas id="the-canvas" style="border:1px solid black;"/>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

hello.js的内容

PDFJS.disableWorker = true;
var pf = PDFJS.getDocument('./helloworld.pdf')
pf.then(function(pdf) {
  pdf.getPage(1).then(function(page) {
    var scale = 1.5;
    var viewport = page.getViewport(scale);

    //
    // Prepare canvas using PDF page dimensions
    //
    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    //
    // Render PDF page into canvas context
    //
    var renderContext = {
      canvasContext: context,
      viewport: viewport …
Run Code Online (Sandbox Code Playgroud)

html javascript html5 pdf.js

7
推荐指数
1
解决办法
7247
查看次数

Android Studio Gradle问题:找到无效的Gradle JDK配置

我正在使用由IntelliJ和Gradle驱动的Android Studio,它给了我一些问题.这是我得到的错误,我真的需要帮助.我不知道我的路径是否正确,但似乎无法解决问题.任何帮助将不胜感激.

在此输入图像描述

这是我给它的位置后得到的,所以我有点困惑.位置是正确的.我承认我不知道问题是什么.提前致谢.

在此输入图像描述

java android intellij-idea gradle

7
推荐指数
1
解决办法
4523
查看次数

UI_USER_INTERFACE_IDIOM()总是在iPad 4.3模拟器上返回UIUserInterfaceIdiomPhone?

我是iOS开发的新手,并继续阅读"学习Cocos2d,使用Cocos2d,Box2d和Chipmunk构建iOS游戏的动手指南"一书.

我注意到我在第2章中呈现的UI按钮和viking characher与本书不匹配...明显的原因是本书指示您使用UI_USER_INTERFACE_IDIOM()宏来确定您是在运行iPad还是iPhone,但似乎无论我是否在xcode中设置使用iPad 4.3或iPhone 4.3的方案,宏总是报告我在手机上运行,​​而不是打击垫.

这个宏有什么问题吗?这是因为我只在模拟器上运行吗?我没有一个实际的设备可以测试任何这个.当这个宏像这样失败时我该怎么办?

objective-c cocos2d-iphone ios

6
推荐指数
1
解决办法
2787
查看次数

android.os.Handler类是否消除了将某些方法声明为synchronized的需要?

在组合一个简单的"时钟"应用程序时,我发现Android要求你使用生活在线程A中的android.os.Handler来更新线程A中的View对象,其中包含来自线程B的数据结果.

我还是比较新的Java,这是我以前第一次明确处理Threads,但我知道如果两个不同的线程想要访问相同的数据,通常会将方法和/或操作声明为synchronized .但是看起来android.os.Handler是一种特定于Android的线程之间同步数据的方式,这样你就可以避免我刚刚链接到的Oracle文档中详述的经典 并发错误.这是真的吗?

如果我发现自己的情况是Android操作系统要求我使用android.os.Handler将数据从一个线程传送到另一个线程,这是否意味着我不必声明用于派生该方法的方法数据同步?

java multithreading android synchronized handler

5
推荐指数
1
解决办法
3672
查看次数

Java中是否存在TweenMax等效项

我仍然是Java和Android开发的新手,所以我仍然不熟悉可用的大量库,特别是动画.我来自(Flash世界),我们可以访问几个第三方补间引擎,当我们想要以编程方式在舞台上移动东西而不依赖于(极其低劣的)内置Adobe时,我们的生活非常轻松补间API.其中最受欢迎的是Greensock的TweenMax

看看Android处理本地补间的方式,与我习惯的相比,它看起来非常麻烦.我很好奇是否有适用于Android的TweenMax等效库,这使得动画排序在代码中同样易于编写,具有智能智能感知的优点,而不必将其全部写入外部animation.xml文件中res文件夹.

java flash animation android actionscript-3

4
推荐指数
1
解决办法
2310
查看次数