我需要在我的蜂窝应用程序中实现启动画面.我在activity的onCreate中使用此代码来显示splash:
setContentView(R.layout.splash);
getActionBar().hide();
Run Code Online (Sandbox Code Playgroud)
并且此代码在某段时间后显示主UI:
setContentView(R.layout.main);
getActionBar().show();
Run Code Online (Sandbox Code Playgroud)
但是在调用onCreate并且出现splash 之前,显示操作栏时会有少量时间.
如何让动作栏隐形?
我尝试将主题应用于没有操作栏的活动:
<item name="android:windowActionBar">false</item>
Run Code Online (Sandbox Code Playgroud)
但在这种情况下getActionBar()总是返回null,我发现无法再显示它.
我在WebView中运行了一些javascript,我希望收到有关JS中错误的控制台消息.按照http://developer.android.com/guide/webapps/debugging.html上的说明,我覆盖了方法
WebChromeClient.onConsoleMessage(String message, int lineNumber, String sourceID)
和
WebChromeClient.onConsoleMessage(ConsoleMessage cm)
,
将消息重定向到logcat.在Android 2.1中它运行良好,但在Android 2.2中没有调用此方法.
我做错了什么?
谢谢.
我正在开发使用大量http请求到web服务的android应用程序.起初,我在每个请求之前创建一个新的HttpClient实例.为了提高性能,我尝试在许多线程中执行请求.所以,我使用ThreadSafeConnectionManager创建了由所有线程共享的单个HttpClient实例:
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
BasicHttpParams params = new BasicHttpParams();
ConnManagerParams.setMaxTotalConnections(params, 100);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setUseExpectContinue(params, true);
ThreadSafeClientConnManager connManager = new ThreadSafeClientConnManager(params, registry);
HttpClient client = new DefaultHttpClient(connManager, params);
Run Code Online (Sandbox Code Playgroud)
但令我惊讶的是,性能下降了.我已经测量了时间,以这种方式执行请求:
long startTime = System.currentTimeMillis();
HttpResponse response = client.execute(postRequest);
long reqTime = System.currentTimeMillis() - startTime;
Log.i("SyncTimer", "Request time:" + reqTime);
Run Code Online (Sandbox Code Playgroud)
这是一个日志,我用简单的DefaultHttpClient获取,没有参数每个请求的新实例:
01-11 11:10:51.136: INFO/SyncTimer(18400): Request time:1076
01-11 11:10:54.686: INFO/SyncTimer(18400): Request time:1051
01-11 11:10:57.996: INFO/SyncTimer(18400): Request time:1054
01-11 11:10:59.166: INFO/SyncTimer(18400): Request time:1070
01-11 11:11:00.346: INFO/SyncTimer(18400): Request time:1172
01-11 …
Run Code Online (Sandbox Code Playgroud) 我正在使用画布在画布上绘制格式化文本DynamicLayout
,我需要实现某种缩放.我试着用canvas.scale(...)
它.但是当文本包含高亮显示时,文本缩放与背景不一致,如下所示:
绘制文本的代码非常简单:
canvas.scale(zoom, zoom);
TextPaint textPaint = new TextPaint();
textPaint.setAntiAlias(true);
DynamicLayout layout = new DynamicLayout(text, textPaint, width,
Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, false);
layout.draw(canvas);
Run Code Online (Sandbox Code Playgroud)
如何正确的方式?
我正在开发在Android 1.5和Andoroid 2.x平台上运行的应用程序.当我在Android 2.2上安装它时一切正常,但在使用Android 1.5的模拟器上我收到错误:
Failure [INSTALL_FAILED_DEXOPT]
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
UPD即Logcat输出:
09-26 07:12:22.484: INFO/PackageManager(579): /data/app/vmdl23706.tmp changed; unpacking
09-26 07:12:22.494: DEBUG/installd(557): DexInv: --- BEGIN '/data/app/vmdl23706.tmp' ---
09-26 07:12:36.114: ERROR/dalvikvm(1362): LinearAlloc exceeded capacity, last=336
09-26 07:12:36.114: ERROR/dalvikvm(1362): VM aborting
09-26 07:12:36.265: INFO/DEBUG(551): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-26 07:12:36.265: INFO/DEBUG(551): Build fingerprint: 'generic/sdk/generic/:1.5/CUPCAKE/150240:eng/test-keys'
09-26 07:12:36.265: INFO/DEBUG(551): pid: 1362, tid: 1362 >>> /system/bin/dexopt <<<
09-26 07:12:36.265: INFO/DEBUG(551): signal 11 (SIGSEGV), fault addr deadd00d …
Run Code Online (Sandbox Code Playgroud)