小编Thr*_*bad的帖子

改造路径替换:替换整个路径(包括/)

在我的设置中,我从最初调用API的REST API获取了我的资源的所有路径.我们使用此模式可以更改所有资源路径,而不会破坏流程中的所有现有应用程序版本.

我一直在玩Retrofit,我试图创建一个方法来接受我作为字符串传递给它的任何路径.我的尝试看起来像这样

@GET("/{path}")
public FooBar getFooBar(@Path("path") String path);
Run Code Online (Sandbox Code Playgroud)

然后我尝试按如下方式调用它.

String path = "foo/bar";
api.getFooBar(path);
Run Code Online (Sandbox Code Playgroud)

不幸的是Retrofit URL-Encodes路径替换,我最终发出请求/foo%2Fbar而不是/foo/bar.有没有办法禁用路径替换的URL编码或跨越多个路径段的替换?不幸的是,我甚至不知道有多少路径段,它都由API控制.

android retrofit

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

了解是否设置了不同的家庭和锁屏壁纸

我有一个正在运行的动态壁纸,并对SCREEN_ON事件作出反应以在画布上显示更改.但是在某些手机上,用户可以设置不同的锁屏和主屏幕壁纸(Touchwiz,一些Xperia设备).当用户在锁定屏幕上设置了不同的壁纸时,我的动态壁纸不会显示.

在我使用的Galaxy S3上WallpaperService.Engine.isVisible(),false当用户设置了不同的锁屏壁纸时它正确返回.在Galaxy S3迷你,但是,这是行不通的,因为isVisible()回报率true是否不是我的动态壁纸是活跃的锁屏壁纸.

WallpaperManager.getWallpaperInfo()或者WallpaperManager.peekDrawable()也不工作,因为getWallpaperInfo()无论当前的锁屏壁纸如何都会返回我的动态壁纸,并且peekDrawable()即使我为两个屏幕设置了动态壁纸,也会返回有效的可绘制内容.我试着听WallpaperService.Engine.onTouchEvent(..),但来自锁屏的触摸事件无法通过我的动态壁纸,因为它们被解锁滑块消耗.

有没有其他方法来检测我的动态壁纸是否是当前的锁屏壁纸?我很喜欢反思黑客,变通方法,所有能让我这样做的东西.

编辑:它也适用于Galaxy Note 2,机器人不在Xperia T LT30p上

android wallpaper live-wallpaper

10
推荐指数
1
解决办法
1919
查看次数

onWffsetsChanged没有被Touchwiz调用

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

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

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

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

android live-wallpaper

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

Unity3D 平铺纹理时边界上可见接缝

对于我的游戏,我编写了一个着色器,可以让我的纹理很好地平铺在多个对象上。我通过不基于顶点的相对位置,而是基于绝对世界位置来选择 uv 来做到这一点。自定义着色器如下。基本上它只是将纹理平铺在 1x1 世界单位的网格中。

Shader "MyGame/Tile" 
{
    Properties 
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader 
    { 
        Tags { "RenderType"="Opaque" }
        LOD 200

        CGPROGRAM
        #pragma surface surf Lambert
        sampler2D _MainTex;

        struct Input 
        {
            float2 uv_MainTex;
            float3 worldPos;
        };

        void surf (Input IN, inout SurfaceOutput o) 
        {
            //adjust UV for tiling
            float2 cell = floor(IN.worldPos.xz);
            float2 offset = IN.worldPos.xz - cell;
            float2 uv = offset;

            float4 mainTex = tex2D(_MainTex, uv);
            o.Albedo = mainTex.rgb;
        }
        ENDCG
    } 
    FallBack "Diffuse"
} …
Run Code Online (Sandbox Code Playgroud)

shader textures tiling unity-game-engine fragment-shader

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