小编Mic*_*ele的帖子

以编程方式切换进度条的颜色

所以我有一个图层列表,其中的项目具有形状和纯色.现在我想在我的代码中更改此颜色.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <clip>
            <shape android:id="@+id/seekbar_shape_color">
                <solid android:color="#FFD00000" />
            </shape>
        </clip>

    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

我尝试获取LayerDrawable并请求第一个项目,现在iam卡住获取clipDrawable并最终得到ShapeDrawable

LayerDrawable sd = (LayerDrawable) v.getResources().getDrawable(R.drawable.seekbar_progress_bg);
((ClipDrawable) sd.getDrawable(0)).get..();
Run Code Online (Sandbox Code Playgroud)

我的另一种方法是获取ShapeDrawable并使用colorFilter设置颜色,但这也不起作用.

ShapeDrawable sd = (ShapeDrawable) v.getResources().getDrawable(R.id.seekbar_shape_color);
sd.setColorFilter(R.color.cold_color,PorterDuff.Mode.MULTIPLY);
Run Code Online (Sandbox Code Playgroud)

编辑:好吧所以我开发了一个新的计划,我试图使用LevelList

 <level-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:maxLevel="0" android:drawable="@color/hot_color">
    </item>
    <item android:maxLevel="1" android:drawable="@color/cold_color">
    </item>
</level-list>
Run Code Online (Sandbox Code Playgroud)

我认为Level的默认值是0但我没有使用LevelList显示进度条.另外我不知道我必须在哪个元素上设置setLevel()

        holder.progressbar.getBackground().setLevel(0);
        holder.progressbar.getIndeterminateDrawable().setLevel(0);
        holder.progressbar.getProgressDrawable().setLevel(0);
Run Code Online (Sandbox Code Playgroud)

这个调用给我奇怪的结果,就像只有新的进度条项目获得100%进展着色,闻起来像缓存问题.

希望有人可以告诉我如何在LayerList上正确使用LevelList以获得进度条感谢

android android-layout android-xml

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

在Android中为不同的布局分离不同的编程逻辑的最佳方法是什么?

我为不同的屏幕尺寸和设备使用不同的布局.我将片段与特定的布局文件夹一起使用.这个概念很棒,对于平板电脑和大屏幕设备,我将布局文件放在 layout-sw600dp中,Android设法在不同的设备上提供正确的布局.

我的错误是:如何找到我的代码中使用的布局.我的片段需要稍微不同的代码用于不同的布局.

总的来说,在我的片段/活动中分离自定义布局编程逻辑的最佳实践是什么?

我的方法现在有点hacky并且与不同的Layout文件夹不同步.

  private boolean isTabletDevice() {
    if (android.os.Build.VERSION.SDK_INT >= 11) { // honeycomb
      // test screen size, use reflection because isLayoutSizeAtLeast is
      // only available since 11
      Configuration con = getResources().getConfiguration();
      try {
        Method mIsLayoutSizeAtLeast = con.getClass().getMethod("isLayoutSizeAtLeast", int.class);
        Boolean r = (Boolean) mIsLayoutSizeAtLeast.invoke(con, 0x00000004); // Configuration.SCREENLAYOUT_SIZE_XLARGE
        return r;
      } catch (Exception x) {
        x.printStackTrace();
        return false;
      }
    }
    return false;
  }
Run Code Online (Sandbox Code Playgroud)

然后

if(isTabletDevice()) {
//findViewById(R.id.onlyInTabletLayoutButton);
}else{
//
}
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

使用重复模式创建9补丁

iam坚持为进度条背景创建一个九个补丁.它有一个重复的模式,如尺子scala,让我头痛.

这是我想要的(在底部)和我拥有的(顶部)的图像. 9补丁问题

谁能给我一个提示如何实现我的目标?

编辑:或者是否可以通过9patch执行此操作?我的另一个尝试是使用android:tileMode ="repeat",但是我的图像高度出现问题(在第二行重复),我需要像repeat-x这样的东西.

提前致谢

edit2:好吧我设法通过拉伸整个重复模式来重复9patch,但它不理想:(

android drawable nine-patch

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

云到设备消息(C2DM)如何工作?

有人可以向我解释一下googles Push Service的工作原理吗?我知道谷歌与其服务器有持久的连接,但是为什么持续连接不能耗尽电池呢?

我理解对其他人的轮询不断唤醒系统并启动收音机.但这与googleserver的持续连接有何不同?根据我的理解,你需要一个永久有效的无线电来保持这种联系?

如何比投票更有效地使用电池?

谢谢

android android-c2dm

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

如何在返回活动时运行代码

在我的申请中,我有3个活动.第一个 - 我开始活动#2的主要内容.从#2开始我开始#3,同时我完成#2.当我完成#3时,我会自动回到#1.问题:如何从3回到1时添加/运行代码?

不确定它是否有意义.但我想要做的是,当结束#3并回到#1时,我想检查文件xyz是否存在并基于它来改变活动#1中的UI.

#1中的OnResume没有运行,从不运行.(对于第一个活动,可能系统不会暂停运行)

如果只有活动#1和2,我可以使用startActivityForResult.但是有两项活动没有做我需要的......

android android-lifecycle android-activity

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

雷达动画android

所以这就是事情.我正在监视某些距离,我想在雷达动画中显示它们.基础雷达图像将是这样的(不完全)

每个圆圈表示距离范围.这个想法是随着距离的变化,点向圆圈移动.我最初的方法是使用每个圆上的点制作相同雷达的不同图像,然后根据距离简单地切换它们.但后来我想知道是否有任何机会(高性能,并且在不同分辨率下工作正常)有一个雷达的基本图像并简单地移动点.我希望我很清楚,如果有人有想法,我会非常感激

我没有发布任何代码,因为我需要这个想法,然后与实现恶劣斗争

animation android

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

BrowseFragment上的另一个行层

我想知道是否可以将BrowseFragment与另一个Layer/Level of Rows一起使用.就像是

cat1 - row1 -> item1 -> subrow1
cat2 - row2 -> item1 -> subrow2
Run Code Online (Sandbox Code Playgroud)

等等.有什么我可以使用BrowseFragment和适配器来获得该层次结构或我应该自己实现它?

我怎么能自己实现呢?我会使用VerticalRowFragment生成另一个Activity但不完全相同.

任何提示或tipps是受欢迎的. 在此输入图像描述

android android-fragments android-tv leanback

2
推荐指数
1
解决办法
1566
查看次数