所以我有一个图层列表,其中的项目具有形状和纯色.现在我想在我的代码中更改此颜色.
<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以获得进度条感谢
我为不同的屏幕尺寸和设备使用不同的布局.我将片段与特定的布局文件夹一起使用.这个概念很棒,对于平板电脑和大屏幕设备,我将布局文件放在 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) iam坚持为进度条背景创建一个九个补丁.它有一个重复的模式,如尺子scala,让我头痛.
这是我想要的(在底部)和我拥有的(顶部)的图像.

谁能给我一个提示如何实现我的目标?
编辑:或者是否可以通过9patch执行此操作?我的另一个尝试是使用android:tileMode ="repeat",但是我的图像高度出现问题(在第二行重复),我需要像repeat-x这样的东西.
提前致谢
edit2:好吧我设法通过拉伸整个重复模式来重复9patch,但它不理想:(
有人可以向我解释一下googles Push Service的工作原理吗?我知道谷歌与其服务器有持久的连接,但是为什么持续连接不能耗尽电池呢?
我理解对其他人的轮询不断唤醒系统并启动收音机.但这与googleserver的持续连接有何不同?根据我的理解,你需要一个永久有效的无线电来保持这种联系?
如何比投票更有效地使用电池?
谢谢
在我的申请中,我有3个活动.第一个 - 我开始活动#2的主要内容.从#2开始我开始#3,同时我完成#2.当我完成#3时,我会自动回到#1.问题:如何从3回到1时添加/运行代码?
不确定它是否有意义.但我想要做的是,当结束#3并回到#1时,我想检查文件xyz是否存在并基于它来改变活动#1中的UI.
#1中的OnResume没有运行,从不运行.(对于第一个活动,可能系统不会暂停运行)
如果只有活动#1和2,我可以使用startActivityForResult.但是有两项活动没有做我需要的......
所以这就是事情.我正在监视某些距离,我想在雷达动画中显示它们.基础雷达图像将是这样的(不完全)
每个圆圈表示距离范围.这个想法是随着距离的变化,点向圆圈移动.我最初的方法是使用每个圆上的点制作相同雷达的不同图像,然后根据距离简单地切换它们.但后来我想知道是否有任何机会(高性能,并且在不同分辨率下工作正常)有一个雷达的基本图像并简单地移动点.我希望我很清楚,如果有人有想法,我会非常感激
我没有发布任何代码,因为我需要这个想法,然后与实现恶劣斗争
我想知道是否可以将BrowseFragment与另一个Layer/Level of Rows一起使用.就像是
cat1 - row1 -> item1 -> subrow1
cat2 - row2 -> item1 -> subrow2
Run Code Online (Sandbox Code Playgroud)
等等.有什么我可以使用BrowseFragment和适配器来获得该层次结构或我应该自己实现它?
我怎么能自己实现呢?我会使用VerticalRowFragment生成另一个Activity但不完全相同.
任何提示或tipps是受欢迎的. 
android ×7
android-c2dm ×1
android-tv ×1
android-xml ×1
animation ×1
drawable ×1
leanback ×1
nine-patch ×1