小编Ily*_*kin的帖子

如何在创建活动之前隐藏操作栏,然后再次显示它?

我需要在我的蜂窝应用程序中实现启动画面.我在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,我发现无法再显示它.

android android-3.0-honeycomb android-actionbar

240
推荐指数
12
解决办法
30万
查看次数

Android:在webview中调试javascript的问题

我在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中没有调用此方法.

我做错了什么?

谢谢.

android android-webview

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

Android HttpClient性能

我正在开发使用大量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)

performance android httpclient

9
推荐指数
1
解决办法
8195
查看次数

Android:在画布上绘制文本时不正确的文本缩放

我正在使用画布在画布上绘制格式化文本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

5
推荐指数
1
解决办法
1274
查看次数

Android:在Android 1.5上安装应用程序时INSTALL_FAILED_DEXOPT

我正在开发在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)

android android-install-apk

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