小编Ste*_*ice的帖子

从android项目中删除所有未使用的资源

我想从我的Android res目录中删除所有未使用的布局,字符串,drawable,颜色等.是否有任何工具可以为我提供文件列表,我可以从我的存储库中删除不再使用的特定文件(例如,未使用的字符串条目)中的元素?

android android-resources

346
推荐指数
10
解决办法
15万
查看次数

解释drawable,drawable-ldpi,drawable-mdpi和drawable-hdpi之间的区别

我粗略地了解了这些目录的用途,但我对这个概念并不是很清楚,而且我有一些具体的问题.

例如,每个目录的目标DPI是多少?创建资产时,它应该是该目标DPI还是应该是更正常的72dpi屏幕DPI?如果您要定位多个设备,是否适合将PNG放入drawable中,或者您是否应始终为特定屏幕量身定制多个版本?

谢谢.

android android-screen-support android-drawable

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

简单的任务会带来错误的价值

private static void convert(int x) {
    // assume we've passed in x=640.

    final int y = (x + 64 + 127) & (~127);
    // as expected, y = 768

    final int c = y;
    // c is now 320?!
}
Run Code Online (Sandbox Code Playgroud)

为什么上述代码会产生上述值,是否有任何理智的解释?从JNI调用此方法.的x传递在原本是C++ int是类型static_castjint如下所示:static_cast<jint>(x);

在调试器中,在y赋值上设置断点,我看到x = 640.踩一行,我看到y = 768.步进另一条线,c = 320.使用调试器,我可以设置变量c = y,它将正确分配它768.

此代码是单线程的,每秒运行多次,始终遵循相同的结果.

从下面的评论更新

经过一天的调试后,这个问题现在已经完全消失了.如果一整天没有重复发生,我会把它归咎于宇宙射线.我在很长一段时间里见过的最奇怪的事情.

我会暂时搁置这个问题,以防有人对可能导致这种情况的原因有所了解.

c++ java java-native-interface android

12
推荐指数
1
解决办法
403
查看次数

将ListView choiceMode从singleChoice更改为multipleChoiceModal

我有一个通常是的ListView singleChoice choiceMode.当用户长按项目时,我想进入允许选择多个项目的动作模式,以便他们可以对任何选定的项目执行操作.

我能够配置它ListView以使其处于singleChoice模式,并且用户能够选择列表项以在其旁边显示细节片段并使列表项本身显示为其激活状态.

我也能够配置它ListView以便multipleChoiceModal choiceMode在项目中执行长按并启动动作模式并允许多个选择,但现在ListView将不允许在正常模式下进行单个选择(无动作模式).

如何处理singleChoice模式中的ListView,然后multipleChoiceModal在长按项目时将其转换为模式?

这是我能够提出的最接近的:

  1. 将ListView设置为singleChoice模式
  2. 设置ListView OnItemLongClickListener并在该侦听器中:
    1. 将ListView设置OnItemLongClickListenernull
    2. 将ListView设置choiceModemultipleChoiceModal
    3. 调用view.performClick()长按的项目.

这种方法有几个问题.

  1. 直到第二次长按项目时才开始操作模式.
  2. 当我打电话给我时getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);,onDestroyActionMode我得到一个java.lang.StackOverflowError因为该方法最终也试图破坏动作模式(但我们还没有从破坏中返回).

android android-3.0-honeycomb android-4.0-ice-cream-sandwich

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

连续替换 CSV 文件中的空值

我有一行文字,如:

value,value,,,value,value
Run Code Online (Sandbox Code Playgroud)

我希望用不同的值替换两个空值。就像是:

value,value,hello,hello,value,value
Run Code Online (Sandbox Code Playgroud)

我目前正在尝试类似的东西:

sed -e 's/^,/hello,/' -e 's/,$/,hello/' -e 's/,,/,hello,/g'
Run Code Online (Sandbox Code Playgroud)

这会在开头、结尾和中间捕获空白值。但是,它不会连续捕获两个连续的空白值。如何更新正则表达式模式,以便在中间出现无限数量的连续空白值?

regex perl sed

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

正则表达式解析码头工人标签?

'registry/rabbit',
'registry/rabbit:3',
'rabbit',
'rabbit:3'
Run Code Online (Sandbox Code Playgroud)

试图提出一个正则表达式,将rabbit在上述四种情况下匹配。似乎很容易,但是我的正则表达式使我失望。

regex

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

连续螺纹监控硬件接近传感器

我将如何实现在整个应用程序中运行的线程.我看过服务,但我很确定这不是我想要的.即使应用程序关闭,我也不希望线程不断检查.我只想要一个线程应用程序中(即使我的活动之间切换)的后台运行不间断的检查,看看用户是否提出的电话给他/她的耳朵.如果用户那么它将执行一个动作.有这样的事情的例子吗?

multithreading android sensor background-process

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

SeekBar 可绘制对象在被适配器重用后未绘制

我需要SeekBar在我的ListView行中绘制覆盖图像。这并不难做到,这个问题中的代码通过在位图中绘制行号并将其放置为可绘制的进度来实现这一点。

我遇到的问题是这只有效一次。当视图被回收用于另一行时,可绘制对象就会消失。

在此输入图像描述

前 10 个视图(位置 0 到 9)有效。之后的一切都失败了。没有错误或异常。Android 只是停止绘制该层。如果我向下滚动然后向上滚动,它们都不起作用(因为它们都已被回收)。

如何让 Android 始终绘制此叠加图像?我想我需要执行某种缓存或失效,但我还不知道它是什么。

public class ViewTest extends ListActivity {
    // replace the progress drawable with my custom drawable
    public void setSeekBarOverlay(SeekBar seekBar, String overlayText) {
        Bitmap bitmap = Bitmap.createBitmap(100, 12, Bitmap.Config.ARGB_4444);
        new Canvas(bitmap).drawText(overlayText, 10, 12, new Paint());

        Drawable d = new BitmapDrawable(bitmap);
        ((LayerDrawable) seekBar.getProgressDrawable()).setDrawableByLayerId(android.R.id.progress, d);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setListAdapter(new ListAdapter() {

            // return the view. Recycle them if possible.
            public View …
Run Code Online (Sandbox Code Playgroud)

android seekbar

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