Articles of android 4.2 jelly bean

在Android JellyBean上更改Actionbar高度

我最近一直在开发一个Android应用程序,我需要为标签栏设置自定义布局和尺寸。 我到目前为止的方式是使用Jake Wharton的ActionBarSherlock库来支持pre-HoneyComb Android版本,并通过将样式应用于我编辑actionBarSize样式项的应用程序。 现在,我一直在测试Galaxy S3上的应用程序(上面有Jellybean),并且根据actionBarSize值,标签栏高度不再变化。 所以我开始查看JellyBean的代码,我在ActionBarPolicy类中find了这个方法: public int getTabContainerHeight() { TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar, com.android.internal.R.attr.actionBarStyle, 0); int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0); Resources r = mContext.getResources(); if (!hasEmbeddedTabs()) { // Stacked tabs; limit the height height = Math.min(height, r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height)); } a.recycle(); return height; } 从我在这个方法中收集的内容来看,似乎JellyBean限制TabBar的高度,当应用程序处于纵向模式时,通过将标签栏高度设置为“action_bar_stacked_max_height”维度值(48dp,在4.1的/values/dimen.xml文件),即使我在/values/dimen.xml设置了操作栏高度。 我已经尝试覆盖这个维度值,通过在我自己的dimen.xml文件dimen.xml其设置为我自己的值,但我没有运气。 它没用。 我的问题: 你们知道我可以覆盖“action_bar_stacked_max_height”维度值的方法吗? 先谢谢你!

onEditorAction()中的null keyevent和actionid = 0(Jelly Bean / Nexus 7)

我有一个编辑文本,在我的应用程序中用作搜索框。 在我的Nexus 7上的Jelly Bean中,当我在正在监听的文本框中输入内容并点击时,输入KeyEvent = null和ActionId = 0传递给onEditorAction()方法。 有人遇到过这种情况么? 我在想它可能是一个bug。 在下面的第二个if语句中,我得到一个空指针,因为actionId = 0和KeyEvent = null; // Search field logic. @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Log.d(TAG, “onEditorAction”); if (event != null && event.getAction() != KeyEvent.ACTION_DOWN) return false; if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { …..Do some stuff(); } }

已弃用的Canvas.getMatrix()的替代方法是什么?

我有以下代码片段,它使用canvas的当前转换矩阵转换一组边界。 final RectF bounds = renderer.computeBounds activeCanvas.getMatrix().mapRect(result, bounds); return bounds; 但是,使用最新的API级别(16),我会收到警告 The method getMatrix() from the type Canvas is deprecated 由API 16 Diff规范确认。 哪个都很好,但是Canvas.getMatrix()的当前文档没有提到弃用,也没有提供替代方案。 作为一种解决方法,我现在只是简单地抑制了这个警告,但我真的想知道这种新的和改进的(tm)方式是什么样的。

果冻豆问题 – wifiManager.getConnectionInfo()。getSSID() – 额外的“”

嗨所有错误报告您的信息。 链接 问题详情 : 代码 – wifiManager.getConnectionInfo().getSSID() 上面的代码返回当前的SSID,它返回当前的SSID,并在其周围加上额外的引号。 例如。 SSID internet将作为”internet”返回。 这只能在使用设备Nexus 7的Jelly bean 4.2上看到。 这个错误导致我们的应用程序出错,因为我们将当前的SSID与我们尝试连接的SSID进行比较。 代码wifiManager.getScanResults(); 但仍然返回所有SSID没有额外的引号。

为Android 4.0或更高版本创建自定义锁屏?

我想为Android 4.0及更高版本创建自定义lockScreen,我已经尝试了创建锁屏的小部件,但它只支持android 4.2。 有没有其他方法来创建自定义android锁屏?

使用由Camera预览填充的SurfaceTexture作为在Jelly Bean中的Renderscriptinput分配

在Jelly Bean中,是否可以从由相机预览填充的SurfaceTexture中创buildRenderscript分配? 我正在从Android源代码树中构build我的应用程序,所以我可以使用@Hide API(如Allocation.setSurfaceTexture())。 不过,我想避免使用RS Graphics弃用的API。 这里的类似问题没有得到充分的回答,也不是JB特有的。 尝试下面的代码时遇到以下问题: 进入Renderscript的数据总是为零 为了让onFrameAvailablecallback被重复调用,我必须updateTexImage(),因为当我调用Allocation.ioReceive()时,它不会在第一次之后被callback,并且在logcat中有一个“无效的EGLDisplay”。 然而,我认为ioReceive()是要走的路 – 它在内部也updateTexImage()。 支持的分配types包括RGBA8888,而不是NV21(这是相机预览格式),RS代码如何能够以这种方式对数据进行格式化? (我知道我正在使用的设备确实支持请求的VGA分辨率)。 public class SampleRSCPCActivity extends Activity implements SurfaceTexture.OnFrameAvailableListener { final static int DO_KERNEL = 0; private static final String TAG="SAMPLERSCP"; private static Camera mCamera; private Camera.Parameters mParams; private int mFrameWidth, mFrameHeight; private static SurfaceTexture mST; private RenderScript mRS; private Allocation mInAllocation; […]

Nexus 10,前置摄像头预览为黑色(无预览)

所以我正在做一个Camera相关的项目,我已经在很多设备上testing过了,除了Nexus 10之外,他们都通过了testing。 我无法弄清楚发生了什么,也没有人在网上讨论这个问题。 我能够在两个不同的Nexus 10(wifi)设备上复制这个问题。 这是我的活动的代码: public class MainActivity extends Activity { private static Camera mCamera; private static boolean mCameraOpen; private static ImageView mPreviewImageView; private SurfaceView mPreviewSurfaceView; private static boolean mPreviewRunning; private static Handler mHandler; private static int TESTS_COUNT = 0; private Camera.Parameters mCameraParameters; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mHandler = new […]

onConfigurationchanged不会在jellybean上调用(4.2.1)

我真的受到这个问题的困扰。 我已经设置了标志android:configChanges="keyboardHidden|orientation|locale" 但是当我改变语言的configuration时, onconfigurationchanged函数不被调用。 奇怪的是,我的代码在其他Android平台上工作正常。 我在这里search这个问题。 有人说我需要设置sdk版本较低。 但它没有工作。 请给我一些提示。

开发人员选项从设置中消失

升级到Android Jelly Bean 4.2后,我无法在设置中finddeveloper options 。 这个设置发生了什么? 我现在可以在哪里find它?

Nexus 7上的Android 4.2:canvas.drawText()无法正常工作

我在Google Play上发布的应用程序面临严重的问题,显然在所有版本的Android上工作都很好,除了4.0以外。 这是我的Android 4.0 HTC手机的屏幕截图: 这就是我在Nexus 7上获得的Android 4.2.1(在模拟器中的相同行为): 我看到使用canvas.drawText()绘制每个文本的相同行为 用于绘制文本的Paint是: paint = new Paint(); paint.setAntiAlias(true); paint.setColor(color); //some color paint.setTextSize(size); //some size paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); paint.setTextAlign(Align.CENTER); 在logCat(4.2.1模拟器)中我看到很多 12-18 20:42:21.096: W/Trace(276): Unexpected value from nativeGetEnabledTags: 0 我在清单中使用这些设置: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />