我正在学习如何制作动态壁纸,但我有一个进退两难的境地,我相信所有开始学习的人都会遇到这样的问题。
有这么多的分辨率屏幕尺寸,我怎么能只制作一组图片以在所有版本的代码中重新缩放?我知道这已经完成了,因为我在其中很多应用程序中看到了 apk 中的图像,并且它们被重新缩放了。
如果它只是一个不需要任何定位的图像,那会很容易,但我的问题是我必须重新缩放背景图像以适应所有设备,我还有适合特定 x 和 y 位置的动画在该背景图像上放置到位,这样看起来整个背景都在动画,但只有一部分是(我远离 300 幅逐帧动态壁纸图像的方式)。
所以背景图像需要重新缩放,动画也需要重新缩放到与背景图像相同的百分比,并且它们需要位于特定的 x 和 y 位置。
如能提供任何帮助,我将不胜感激。
我厌倦了一些事情,想我会为所有东西做一个缩放器例如:int scaler;然后在 onSurfaceChanged scaler = width/1024;//如果更大的图像是 1024。这将给我一个可以在任何地方工作的比率。然后使用 scaleBitmap 通过将缩放器乘以图像高度和宽度来相应地缩放,并且还使用相同的缩放器来定位示例图像 x 让我们说是在 50,使用相同的东西缩放它 x = scaler * 50;那应该负责缩放和定位,下一课就是如何将所有这些翻译成 java,因为我是 java 的新手,我曾经为 flash 和 php 编程,但这有很大的不同,需要一些时间来适应.接下来是如何平移宽度,当您左右移动屏幕时如何显示图像是我想出的下一个难题。现在,无论宽度是表面显示的两倍,它都只显示相同的宽度。如果您得到答案或在某个地方我可以找到有关此问题的信息,我们将不胜感激。
最佳答案
嗯,嗯,我只能说“欢迎来到现实世界”。您通过 onSurfaceChanged 将屏幕尺寸传递给您,是的,您的工作是弄清楚如何根据此数据缩放所有内容。这就是为什么他们付给我们大笔钱的原因。 :-) 您将需要确保您的资源足够大以适应您打算支持的最大显示器,因此您将始终缩小事物(扭曲远小于扩展事物)。
建议从此处的“屏幕独立性最佳实践”开始:http://developer.android.com/guide/practices/screens_support.html
关于您请求更多帮助的其他评论...
祝你好运......乔治
附言我将再抛出一件事:沿着这条线的某个地方,您可能想要检索启动器所需的墙纸的“所需最小宽度”,以便您可以明确理解 xPixels 中隐含的虚拟化。例如,在我的引擎构造函数中,我有
mContext = getApplicationContext();
mWM = WallpaperManager.getInstance(mContext);
mDW = mWM.getDesiredMinimumWidth();
我的设备有 320 像素宽度;我得到 mDW = 640;当我从一个屏幕滚动到另一个屏幕时,xPixels 每次都会改变 80...因为四次滚动(跨越五个屏幕)应该使显示的艺术品数量加倍(这种效果称为“视差滚动”)。最右边的部分 xPixels 等于 0;中心(五个)部分的 xPixels = -160 等。
关于android动态壁纸重新缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208203/
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA
我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
有没有办法在Ruby中动态创建数组?例如,假设我想遍历用户输入的书籍数组:books=gets.chomp用户输入:"TheGreatGatsby,CrimeandPunishment,Dracula,Fahrenheit451,PrideandPrejudice,SenseandSensibility,Slaughterhouse-Five,TheAdventuresofHuckleberryFinn"我把它变成一个数组:books_array=books.split(",")现在,对于用户输入的每一本书,我想用Ruby创建一个数组。伪代码来做到这一点:x=0books_array.
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO
我正在尝试将$stdout设置为临时写入一个文件,然后返回到一个文件。test.rb:old_stdout=$stdout$stdout.reopen("mytestfile.out",'w+')puts"thisgoesinmytestfile"$stdout=old_stdoutputs"thisshouldbeontheconsole"$stdout.reopen("mytestfile1.out",'w+')puts"thisgoesinmytestfile1:"$stdout=old_stdoutputs"thisshouldbebackontheconsole"这是输出。r
我有一个super简单的脚本,它几乎包含了FayeWebSocketGitHub页面上用于处理关闭连接的内容:ws=Faye::WebSocket::Client.new(url,nil,:headers=>headers)ws.on:opendo|event|p[:open]#sendpingcommand#sendtestcommand#ws.send({command:'test'}.to_json)endws.on:messagedo|event|#hereistheentrypointfordatacomingfromtheserver.pJSON.parse(event.d
首先,我使用的是rails3.1.3和来自master的carrierwavegithub仓库的分支。我使用after_init钩子(Hook)来确定基于属性的字段页面模型实例并为这些字段定义属性访问器将值存储在序列化哈希中(希望它清楚我是什么谈论)。这是我正在做的事情的精简版:classPage省略mount_uploader命令让我可以访问我想要的属性。但是当我安装uploader时出现错误消息说“nil类的未定义新方法”我在源代码中读到有方法read_uploader和扩展模块中的write_uploader。我如何必须覆盖这些来制作mount_uploader命令使用我的“虚拟
例如,假设我有一个名为Products的模型,并且在ProductsController中,我有以下代码用于product_listView以显示已排序的产品。@products=Product.order(params[:order_by])让我们想象一下,在product_listView中,用户可以使用下拉菜单按价格、评级、重量等进行排序。数据库中的产品不会经常更改。我很难理解的是,每次用户选择新的order_by过滤器时,rails是否必须查询,或者rails是否能够以某种方式缓存事件记录以在服务器端重新排序?有没有一种方法可以编写它,以便在用户排序时rails不会重新查询结果