相关疑难解决方法(0)

onWffsetsChanged没有被Touchwiz调用

注意:由于这是三星特有的问题,我也在开发板上问过它.

我目前正在Android中实现动态壁纸,我正在我的壁纸引擎中听取onOffsetsChanged()方法,以便在用户刷过主屏幕时更改壁纸.这在我的私有Galaxy Tab上使用CM9自定义ROM很有效.在我的公司设备上,一个股票Galaxy S3,它不起作用.不知何故,当主屏幕改变时,Touchwiz不会调用onOffsetsChanged.

谷歌搜索该主题并没有产生任何重大的结果,除了这个应用程序的描述,其中开发人员声明:"修复了最新的TouchWiz启动器滚动,其中onOffsetsChanged()没有被调用." 现在我只是联系开发者,但不幸的是它也是一个三星应用程序.

有没有人知道一个解决方法来获得当前的偏移量而不依赖于onOffsetsChanged?有没有人在自己的壁纸中遇到这个问题?有谁知道这是故意还是我可以假设未来的Touchwiz版本会再次使用该方法?

android live-wallpaper

9
推荐指数
1
解决办法
3082
查看次数

使用视差滚动制作Android动态壁纸

我正在创建一个带有视差滚动的动态壁纸.我读过这篇文章:动态壁纸背景的视差效果滚动.但是当我更换桌面时,背景移动方式错误(如果我从左到右更换桌面,图片从右向左移动).如何改变方向?代码段:

public void Init(Bitmap bitmap){
  bg = new BitmapFactory().decodeResource(context.getResources(), R.drawable.thunder);
  bg = Bitmap.createScaledBitmap(bg, (int)(width*1.4), height, true);
}

float dx = 0.0f; 
@Override
    public void onOffsetsChanged(float xOffset, float yOffset,
            float xStep, float yStep, int xPixels, int yPixels) {
        dx = (width - bg.getWidth()) * (1 - xOffset);
    } 

private void doDraw(Canvas canvas) {
    canvas.save();
    canvas.translate(dx, 0);
    canvas.drawBitmap(bg, 0, 0, null);

    canvas.restore();
}   
Run Code Online (Sandbox Code Playgroud)

android

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

安卓动态壁纸重新缩放

我正在学习如何制作动态壁纸,但我有一个两难的境地我确信所有开始的人都有.

有如此多的分辨率屏幕尺寸,我如何才能在一段代码中为所有版本重新调整一组艺术作品?我知道它已经完成,因为我在很多人看到了apk中的图像并且它们被重新缩放.

如果它只是一个不需要任何定位的图像很容易,但我的问题是我必须重新调整背景图像以适应所有设备,我也有适合该背景上某个x和y位置的动画图像适合到位,所以看起来整个背景都是动画的,但只有部分是(我的方式远离300帧图像的逐帧动态壁纸).

因此需要重新调整背景图像,并且动画需要重新缩放到与背景图像完全相同的百分比,并且它们需要位于特定的x和y位置.

任何帮助将不胜感激,所以我可以得到这个.


我厌倦了一些事情,我想我会为所有例子制作一个缩放器:int scaler; 然后在onSurfaceChanged scaler = width/1024; //如果较大的图像是1024.这将给我一个与任何地方一起工作的比率.然后通过将缩放器乘以图像的高度和宽度,使用scaleBitmap进行相应缩放,并使用相同的缩放器进行定位示例图像x,假设为50,使用相同的比例缩放x = scaler*50; 应该注意缩放和定位,如何将所有这些转换为java是下一课,因为我是java的新手,我曾经为flash和php编程但是这有很多不同,需要一些习惯.接下来是如何平移宽度,当您将屏幕从一侧移动到另一侧时如何使图像显示是我已经弄清楚的下一个难题.现在它只是显示相同的宽度,即使宽度是表面显示的两倍.如果你有答案或某个地方,我可以找到关于这个的信息,将非常感谢.

android screen-resolution live-wallpaper

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