Articles of android

在Android的webview,当我执行javascript sotfkeyboard消失

在WebView中,当我通过webview.loadUrl()执行JavaScript时,如果可见,软键盘消失。 当我尝试在HTML文本字段中键入一些文本时,softkeyboard消失(如果JavaScript被执行),我无法input所有文本。 文本字段不会丢失焦点,所以提示仍然在文本字段上,但软键盘已closures。 有人能告诉我如何解决这个问题吗?

ActionBar菜单项的dynamic可绘制图标? (Android,ActionBarSherlock)

我如何dynamic更新ActionBar MenuItem的图标以显示一个数字的“红色徽章”? (在概念上类似于“未读消息计数”) 我在我的Android应用程序中使用ActionBarSherlock,目标是API级别10+。 我的应用程序是用于移动数据捕获的,有时用户不能立即提交新数据,但必须将其保存在本地电话上(例如连接不畅时)。 每当在手机上存储“未提交”的项目时,我想向用户显示一个菜单项(在操作栏中),以便他们可以点击“取消提交项目”活动并手动触发上传。 理想情况下 ,这个菜单项将有一些graphics表示的未提交项目的数量(类似于电子邮件或短信应用程序显示作为徽章的未读邮件的数量)。 目前,我只是在做: unsubmittedMenuItem.setTitle( Integer.toString(numUnsubmitted) ); 这个工作,但有两个问题:我更喜欢使用图标,并保持标题为可理解的(“未提交”),而且,我也想在这里有一些自定义的布局或devise,如红圈在数字后面的背景。 想想如何做到这一点? 到目前为止,我的研究表明两种可能 使用预先创build的一些数字范围(例如1,2,3 … 10+)的级别列表,然后unsubmittedMenuItem.getIcon()。setLevel(numUnsubmitted) 使用位图和canvasAPI完全dynamic地构build整个位图 这些都是类似的,我把文本渲染成一个位图(或者像#1一样离线,或者像#2一样),但是如果可能的话,利用ActionBar的“本地”文本渲染是非常好的在TextView中插入一个红色圆圈。 有没有一种方法来设置一个自定义的布局只是为了绘制图标? (不是一个完整的actionLayout,只是为了图标?)

使用animation类来animation视图内的最佳方法是什么?

我已阅读了有关“animation”和“ 硬件加速”的内容,但我仍然不确定使用animation类的最有效方法是什么。 (为了这个问题,我不需要在Honeycomb之前支持设备,所以我想使用animation类。) 例如,说我有一个视图。 在这个视图中我有一个我想淡入的BitmapDrawable。视图中还有许多其他元素不会改变。 什么属性或对象最适合animation师使用? 可绘制? 在onDraw中绘制位图的绘图? 别的东西? 如何在硬件加速方面做到最高效? 这是否需要为animation的每一步调用invalidate或者是否有一种方法来为drawable创buildanimation并且不会导致animation的每一步都完全重绘视图的其余部分? 我猜想我认为一个最佳的情况是剩下的视图不必完全用软件重新绘制,而是硬件加速有效地淡化绘图。 任何build议或build议的方法指针? 谢谢!

Android,从EditText中dynamic改变下划线颜色

是否有可能dynamic改变EditText下划线的颜色? 就像效果一样,当我把它聚焦的时候,它变成了蓝色。 希望你明白我想要做什么。

Android:从NativeActivity使用JNI

我们正在使用NativeActivity类在android上开发一个OpenGL游戏。 到目前为止,一切正常,但现在我们需要访问一些似乎只能从Java获得的function。 还有更多,但第一个我们认为将是有用的访问显示DPI。 如此处所述,Java代码如下所示: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); 这里是不幸的对应C ++代码: // My checking routine. #define JNI_ASSERT(jni, cond) { \ if (!(cond)) {\ std::stringstream ss; \ ss << __FILE__ << ":" << __LINE__; \ throw std::runtime_error(ss.str()); \ } \ if (jni->ExceptionCheck()) { \ std::stringstream ss; \ ss << __FILE__ << ":" << __LINE__; \ […]

每次应用程序启动时都请求Google Cloud Messaging(GCM)注册ID

我已阅读关于GCM的文章可能会刷新注册ID,没有固定的周期。 我试图build立一个应用程序使用推送通知,但不知道如何处理这种刷新注册ID。 我的第一个策略是每次应用程序启动时请求注册ID,并将其发送到应用程序服务器。 它看起来工作,但听起来不知何故… 可以这样做吗?

Service.startForeground()在与ServiceTestCase一起运行时抛出NullPointerException

这是一个已知的烦人的2岁的Android错误。 我的问题是,除了修改Android源代码并重新编译它之外,是否有人知道这个问题的任何解决方法? 这是我的代码为了完成: 我的服务子类提出了NPE的方法: /** Shows notification of started service */ private void doStartForeground() { // Prepare notification final NotificationHelper nh = doNotification("Service started"); // Start foreground startForeground(nh.getNotificationId(), nh.getNotification()); } 这是从onCreate()方法覆盖中调用的。 而JUnit的testing方法是: public void test1() throws InterruptedException { assertTrue(context != null); final Intent service = new Intent(); service.setComponent(new ComponentName(CoreService.PACKAGE_NAME, CoreService.SERVICE_FULL_NAME)); IBinder binder = bindService(service); assertTrue(binder […]

Android:File()的资源文件夹的path?

我在我的项目的资产文件夹中有一些文件,我想列出它们,所以我把它放在我的代码中: File dir = new File("com.packagename/assets/fonts"); File[] fileList = dir.listFiles(); 我应该采取哪一条path才能使它工作? 我想要它,所以用户可以安装新的字体(我不知道如何做到这一点),所以我需要列出文件夹中的所有字体,包括后装字体。 如果有其他解决scheme,请分享。

使用xml布局dynamic添加片段到GridLayout是不行的

在我们的应用程序中,我们试图dynamic添加片段到GridLayout。 XML格式的空网格布局与片段的布局一样。 在运行时,我们检查一些数据,并从中确定要添加到布局的片段数量以及每个片段使用哪个布局。 当我们有片段为其生成的视图分配一个大小的时候,它是全部工作的,但是如果我们在片段的布局文件中指定了大小,则在网格布局中什么都不显示。 显然,我们可以在创build视图时简单地指定大小,但是我们更愿意在碎片的xml布局中进行,因为这样可以让我们利用Android的内置系统为每个设备select正确的布局。 我正在使用支持库碎片。 如果这有所作为,我不使用支持库GridLayout 相关的代码和XML如下: GridLayout XML: <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ScrollView android:id="@+id/grid_scroll" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottom_fragment" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginRight="8dp" android:layout_marginTop="?android:attr/actionBarSize" android:overScrollMode="ifContentScrolls" > <GridLayout android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="wrap_content" android:alignmentMode="alignMargins" android:animateLayoutChanges="true" android:columnCount="3" android:columnOrderPreserved="true" android:orientation="horizontal" android:overScrollMode="ifContentScrolls" android:rowOrderPreserved="true" > </GridLayout> </ScrollView> </merge> 片段XML的一个例子 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="200dp" android:layout_height="100dp" android:alpha="1" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="match_parent" […]

将项目添加到Fragment中的操作栏选项菜单后,进行方向更改后发生崩溃

我使用ActionBarSherlock和ViewPagerIndicator作为选项卡显示碎片。 其中一个碎片添加项目到ActionBar: private String[] mapNames; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); // init an String array `mapNames` which is used when populating submenu // … } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.fragment_maps, menu); SubMenu mapNamesMenu = menu.findItem(R.id.map_names).getSubMenu(); mapNamesMenu.clear(); for (int i=0; i<mapNames.length; i++) { mapNamesMenu.add(1, i, Menu.NONE, mapNames[i]); } super.onCreateOptionsMenu(menu, […]