小编gre*_*eve的帖子

在AppCompat工具栏上的MenuItem着色

当我使用AppCompat库中的drawables 作为我的Toolbar菜单项时,着色按预期工作.像这样:

<item
    android:id="@+id/action_clear"
    android:icon="@drawable/abc_ic_clear_mtrl_alpha"  <-- from AppCompat
    android:title="@string/clear" />
Run Code Online (Sandbox Code Playgroud)

但是如果我使用自己的drawables,或者实际上甚至将drawables从AppCompat库中复制到我自己的项目中,它根本就不会染色.

<item
    android:id="@+id/action_clear"
    android:icon="@drawable/abc_ic_clear_mtrl_alpha_copy"  <-- copy from AppCompat
    android:title="@string/clear" />
Run Code Online (Sandbox Code Playgroud)

是否有一些特殊的魔法AppCompat Toolbar,只有那个图书馆的色彩抽奖?有没有办法让我的自己的drawables工作?

在API Level 19设备上使用compileSdkVersion = 21和运行此操作targetSdkVersion = 21,并使用其中的所有内容AppCompat

abc_ic_clear_mtrl_alpha_copyabc_ic_clear_mtrl_alphapng 的精确副本AppCompat

编辑:

着色基于我android:textColorPrimary在主题中设定的值.

例如,<item name="android:textColorPrimary">#00FF00</item>可以给我一个绿色的色调的颜色.

截图

着色使用AppCompat中的drawable按预期工作 着色使用AppCompat中的drawable按预期工作

着色不适用于从AppCompat复制的drawable 着色不适用于从AppCompat复制的drawable

android tint toolbar android-appcompat

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

如何使用ThreadPoolExecutor和自定义任务实现PriorityBlockingQueue

我经常搜索,但找不到解决问题的方法.

我有自己的类,BaseTask使用a ThreadPoolExecutor来处理任务.
如果我不想要优先级(即使用a PriorityBlockingQueue),这可以正常工作,但当我尝试使用ClassCastException我得到的ThreadPoolExecutor因为FutureTask将我的任务包装到一个FutureTask对象中.
这显然是可以的,因为Comparable它没有实现newTaskFor(),但我将如何继续解决优先级问题?
我读过您可以覆盖ThreadPoolExecutorBaseTask,但我似乎无法在所有发现这个方法...?

我们欢迎所有的建议!

一些代码可以帮助:

在我的BaseFutureTask班上,我有

private static final BlockingQueue<Runnable> sWorkQueue = new PriorityBlockingQueue<Runnable>();

private static final ThreadFactory sThreadFactory = new ThreadFactory() {
    private final AtomicInteger mCount = new AtomicInteger(1);

    public Thread newThread(Runnable r) {
        return new Thread(r, "AsyncTask #" + mCount.getAndIncrement());
    }
};

private static final BaseThreadPoolExecutor sExecutor = new BaseThreadPoolExecutor(
    1, Integer.MAX_VALUE, …
Run Code Online (Sandbox Code Playgroud)

java priority-queue executor futuretask threadpool

24
推荐指数
4
解决办法
2万
查看次数

将GridView添加到Android中的ListView

我正在尝试创建一个ListView,它将包含两种类型的元素:字符串和GridView.
即将两个字符串和一个GridView放在一个ListView中.

布局应如下所示:

  • 字符串项1.1
  • 字符串项1.2
  • 字符串项1.3
  • 字符串项1.4
  • GridView项目1 GridView项目2
    GridView项目3 GridView项目4
  • 字符串项2.1
  • 字符串项目2.2
  • 字符串项2.3
  • 字符串项2.4

有没有办法做到这一点?

到目前为止,我只能在GridView中显示第一个项目,它在ListView中就像一个常规的String元素一样.

代码可以在这里查看:

任何帮助表示赞赏:)

android listview gridview

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

Android中的水平滚动文字

我一直在寻找一段时间,我无法直接回答我的问题.

这很简单:当你选择一个应用程序时,如何像市场中的长应用程序名称一样获得一个漂亮的滚动文本?

android text textview horizontal-scrolling

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

在android中动画片段的白色背景

我试图在Android中的片段中滑动.过渡和滑动按预期工作,它正好滑动到我想要的位置.但是,在视图到位之前,有一个白色背景,视图将位于其最终位置.它就像为它分配了空间.但是我想让它滑过我当前的视图,所以没有显示白色背景.有什么想法吗?我在res/anim中使用带有xml文件的view animator.

这是一个小代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
    android:duration="100"
    android:fromYDelta="100%"
    android:toYDelta="0" />

<alpha
    android:duration="100"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />
Run Code Online (Sandbox Code Playgroud)

android.support.v4.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

fragmentTransaction.setCustomAnimations(R.anim.slide_in_down, 0);
fragmentTransaction.show(fragmentToSlideIn);
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)

那么,为什么视图的最终位置在达到该位置之前会有白色背景?

android android-animation android-fragments

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