小编Poi*_*ull的帖子

我如何编写一个与非贪婪相匹配的正则表达式?

我需要有关非贪婪选项的正则表达式匹配的帮助.

匹配模式是:

<img\s.*>
Run Code Online (Sandbox Code Playgroud)

要匹配的文字是:

<html>
<img src="test">
abc
<img
  src="a" src='a' a=b>
</html>
Run Code Online (Sandbox Code Playgroud)

我在http://regexpal.com上测试

此表达式匹配从<img最后到的所有文本>.我需要它与>初始后遇到的第一个匹配<img,所以在这里我需要得到两个匹配而不是我得到的匹配.

我尝试了所有非贪婪的?组合,没有成功.

regex non-greedy regex-greedy

315
推荐指数
3
解决办法
31万
查看次数

硬件加速活动 - 如何获得OpenGL纹理大小限制?

我正在尝试在Honeycomb中启用hw加速,并在Canvas上显示一些Bitmaps.一切正常,但对于大位图(一维> 2048),我在日志中得到错误:

OpenGLRenderer:位图太大而无法上传到纹理中

我知道这是因为hw限制,并且可以通过减少最大位图大小来解决它,如果启用了hw加速(由View.isHardwareAccelerated()检查).

我的问题是:如何轻松确定硬件可用于位图绘制的最大纹理大小.2048似乎是对我的设备的限制,但它可能在不同的设备上有所不同.

编辑:我不是创建OpenGL应用程序,只是普通的应用程序,它可以利用hw加速.因此我根本不熟悉OpenGL,我只是在日志中看到OpenGL相关的错误,并期待解决它.

android hardware-acceleration android-3.0-honeycomb

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

如何在Android中的画布上绘制平滑/抖动渐变

几个答案提到使用GradientDrawable.setDither(true)在Android中绘制平滑渐变.这对我的代码没有任何影响.知道我需要改变什么才能在我的动态壁纸中获得漂亮的渐变效果吗?

GradientDrawable gradient = new GradientDrawable(Orientation.TL_BR, colors);
gradient.setGradientType(GradientDrawable.RADIAL_GRADIENT);
gradient.setGradientRadius(canvas.getWidth() * 2);
gradient.setDither(true);
gradient.setGradientCenter(-0.1f, -0.1f);
gradient.setBounds(cb);
gradient.draw(canvas);
Run Code Online (Sandbox Code Playgroud)

android gradient dithering

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

Java boolean | =运算符

最近我看到一个代码使用这个:

boolean val = something();
val |= somethingElse();
Run Code Online (Sandbox Code Playgroud)

有趣的部分是| =(二进制)运算符在布尔基元类型上制作.

令我感到惊讶的是,布尔值存在| =存在,好像它是整数类型,并搜索此运算符的Java规范,但找不到任何.

如果左值已经为真,我会好奇是否评估右操作数.

有人能指出我的Java规范吗?

java specifications operators boolean-expression compound-assignment

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

本机代码 - 如何以编程方式获取函数调用堆栈(回溯)

我在Android上运行C++代码库,并希望用户发送崩溃报告.

我正在使用ACRA库,它可以很好地用于Java代码,但是当本机代码崩溃时,我得不到足够的信息.实际上我想收到本机函数调用的堆栈跟踪.我知道在我的进程结束后会将崩溃信息打印到logcat中,我可以配置ACRA来读取/发送logcat.我已经设置了我的代码,使用信号处理程序检测本机崩溃,并回调Java以便ACRA报告.它也很好用.

然而,这种方法的时机不合适 - ACRA在崩溃进程仍然存活时读取日志,并且在崩溃进程完全结束后,Android(不确切知道哪个部分)将崩溃报告写入logcat.所以我在使用ACRA时没有收到堆栈跟踪.

所以我正在寻找一种以编程方式从C++代码中读取当前堆栈跟踪的方法,并将此信息提供给ACRA(或者其他崩溃报告工具).

我只需要写一些写入logcat的报告:

10-10 08:29:13.868: INFO/DEBUG(1121):          #00  pc 0003fc7c  /data/data/com.ex.lib/libapp.so
10-10 08:29:13.891: INFO/DEBUG(1121):          #04  pc 00016df4  /system/lib/libdvm.so
10-10 08:29:13.891: INFO/DEBUG(1121):          #05  pc 00045284  /system/lib/libdvm.so
10-10 08:29:13.899: INFO/DEBUG(1121):          #15  pc 00047c56  /system/lib/libdvm.so
10-10 08:29:13.922: INFO/DEBUG(1121):          #16  pc 00030e4c  /system/lib/libandroid_runtime.so
Run Code Online (Sandbox Code Playgroud)

有没有办法从我的代码中获取这个堆栈跟踪?

java-native-interface android acra

23
推荐指数
2
解决办法
6089
查看次数

Android Studio gradle的"计算任务图"需要太长时间

在Android Studio中构建应用程序时,需要太长时间(除了我使用离线模式,最新的gradle等).

我调查,并查看每个任务的进度,其中大部分时间花在计算任务图项目上.

在此输入图像描述

我在Gradle工具窗口中选择的每个gradle任务在此Calculate任务图中至少花费9秒.

如何通过缓存其他gradle任务(UP-TO-DATE),如何加快此任务的速度,以及为什么需要这么长时间?我可以更快地构建,但每个应用程序构建增加10秒,这是生产力的杀手.

欢迎任何建议.谢谢.

gradle android-studio

14
推荐指数
1
解决办法
2773
查看次数

PopupWindow z订购

我使用PopupWindow播放菜单,它与EditText重叠.

它工作正常,只是我的PopupWindow与EditText IME系统中的一些项目重叠(选择标记,粘贴按钮).

我的问题是:如何强制我的PopupWindow的z排序,使它出现在那些装饰上面?

这是正在发生的事情的形象.我需要在所有内容之上绘制我的PopupWindow(菜单),从而以某种方式告诉WindowManager如何订购窗口.谢谢.

在此输入图像描述

android popupwindow android-windowmanager

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

ContentResolver - 如何从Uri获取文件名

我用Intent ACTION_GET_CONTENT调用startActivityForResult.一些应用程序使用此Uri返回数据:

内容://媒体/外部/图像/媒体/ 18122

我不知道它是图像,视频还是一些自定义内容.如何使用ContentResolver从此Uri获取实际文件名或内容标题?

android android-contentresolver

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

原始getter/setter方法需要java synchronized关键字?

我读了一些java代码,发现了这些函数:

synchronized void setConnected(boolean connected){
   this.connected = connected;
}

synchronized boolean isConnected(){
   return connected;
}
Run Code Online (Sandbox Code Playgroud)

我想知道这里的同步是否有意义,或者只是作者不理解synchronized关键字的必要性?

我想在这里同步是没用的.还是我弄错了?

java synchronized

12
推荐指数
2
解决办法
6063
查看次数

GLSurfaceView - 如何制作半透明背景

我尝试使用GLSurfaceView进行渲染,并通过文档设置格式:

getHolder().setFormat(PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)

我使用GLSurfaceView.Renderer,它绘制onDrawFrame:

GLES20.glClearColor(0, 0, 1, .5f);
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)

但是,GLSurfaceView中的GL渲染不是半透明的,而是完全蓝色的.如果我省略glClear调用,那么它是全黑的.

如何使GL渲染具有透明背景,以便与后面绘制的视图混合?

在此输入图像描述

编辑:这是我的GLSurfaceView:

class GLView extends GLSurfaceView{
   MyRenderer r;
   public GLView(Context ctx){
      super(ctx);
      setEGLContextClientVersion(2);

      getHolder().setFormat(PixelFormat.TRANSLUCENT);

      setEGLConfigChooser(8, 8, 8, 8, 16, 0);
      r = new MyRenderer(getContext());
      setRenderer(r);
   }
}
Run Code Online (Sandbox Code Playgroud)

android background transparent opengl-es-2.0

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