我需要有关非贪婪选项的正则表达式匹配的帮助.
匹配模式是:
<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)
此表达式匹配从<img
最后到的所有文本>
.我需要它与>
初始后遇到的第一个匹配<img
,所以在这里我需要得到两个匹配而不是我得到的匹配.
我尝试了所有非贪婪的?
组合,没有成功.
我正在尝试在Honeycomb中启用hw加速,并在Canvas上显示一些Bitmaps.一切正常,但对于大位图(一维> 2048),我在日志中得到错误:
OpenGLRenderer:位图太大而无法上传到纹理中
我知道这是因为hw限制,并且可以通过减少最大位图大小来解决它,如果启用了hw加速(由View.isHardwareAccelerated()检查).
我的问题是:如何轻松确定硬件可用于位图绘制的最大纹理大小.2048似乎是对我的设备的限制,但它可能在不同的设备上有所不同.
编辑:我不是创建OpenGL应用程序,只是普通的应用程序,它可以利用hw加速.因此我根本不熟悉OpenGL,我只是在日志中看到OpenGL相关的错误,并期待解决它.
几个答案提到使用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) 最近我看到一个代码使用这个:
boolean val = something();
val |= somethingElse();
Run Code Online (Sandbox Code Playgroud)
有趣的部分是| =(二进制)运算符在布尔基元类型上制作.
令我感到惊讶的是,布尔值存在| =存在,好像它是整数类型,并搜索此运算符的Java规范,但找不到任何.
如果左值已经为真,我会好奇是否评估右操作数.
有人能指出我的Java规范吗?
java specifications operators boolean-expression compound-assignment
我在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)
有没有办法从我的代码中获取这个堆栈跟踪?
在Android Studio中构建应用程序时,需要太长时间(除了我使用离线模式,最新的gradle等).
我调查,并查看每个任务的进度,其中大部分时间花在计算任务图项目上.
我在Gradle工具窗口中选择的每个gradle任务在此Calculate任务图中至少花费9秒.
如何通过缓存其他gradle任务(UP-TO-DATE),如何加快此任务的速度,以及为什么需要这么长时间?我可以更快地构建,但每个应用程序构建增加10秒,这是生产力的杀手.
欢迎任何建议.谢谢.
我使用PopupWindow播放菜单,它与EditText重叠.
它工作正常,只是我的PopupWindow与EditText IME系统中的一些项目重叠(选择标记,粘贴按钮).
我的问题是:如何强制我的PopupWindow的z排序,使它出现在那些装饰上面?
这是正在发生的事情的形象.我需要在所有内容之上绘制我的PopupWindow(菜单),从而以某种方式告诉WindowManager如何订购窗口.谢谢.
我用Intent ACTION_GET_CONTENT调用startActivityForResult.一些应用程序使用此Uri返回数据:
内容://媒体/外部/图像/媒体/ 18122
我不知道它是图像,视频还是一些自定义内容.如何使用ContentResolver从此Uri获取实际文件名或内容标题?
我读了一些java代码,发现了这些函数:
synchronized void setConnected(boolean connected){
this.connected = connected;
}
synchronized boolean isConnected(){
return connected;
}
Run Code Online (Sandbox Code Playgroud)
我想知道这里的同步是否有意义,或者只是作者不理解synchronized关键字的必要性?
我想在这里同步是没用的.还是我弄错了?
我尝试使用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 ×6
java ×2
acra ×1
background ×1
dithering ×1
gradient ×1
gradle ×1
non-greedy ×1
operators ×1
popupwindow ×1
regex ×1
regex-greedy ×1
synchronized ×1
transparent ×1