我正在为Android开发一个PopUp窗口,它正在工作,我在其上添加了一个EditText和一个Button,当在ADV上运行时,这个工作正常,当在设备上运行时,当我专注于EditText时,这会引发一个奇怪的异常.
android.view.WindowManager$BadTokenException: Unable to add window - - token android.view.ViewRoot&48163b18 is not valid; is your active running?
Run Code Online (Sandbox Code Playgroud)
我不知道它是否重要,但我正在运行带有Swype输入的Galaxy Tab.
现在我读了Window.showAtLocation的规范
public void showAtLocation (View parent, int gravity, int x, int y)
Display the content view in a popup window at the specified location. If the popup window cannot fit on screen, it will be clipped. [...]
Parameters
parent a parent view to get the getWindowToken() token from
[...]
Run Code Online (Sandbox Code Playgroud)
问题只在于该令牌,但我如何将Activity令牌传递给它?
我还写了一个小代码来重现错误.
PopupWindow window = new PopupWindow(activity);
window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
window.setTouchable(true);
window.setFocusable(true);
EditText …Run Code Online (Sandbox Code Playgroud) 我需要从C++获取一个字符串列表(char*)并将其返回给Java.
我怎样才能做到这一点?
我认为一个解决方案是返回一个预定义的大字符串,如:"[item1] [item2]"并在Java上进行拆分,但它看起来不像正确的方法.
我正在使用AbsoluteLayout定位VideoView(我需要在特定位置的屏幕上的几个位置显示它).
public void showVideo(RectF bounds, final String videoUrl) {
AbsoluteLayout.LayoutParams params = (AbsoluteLayout.LayoutParams) video.getLayoutParams();
params.width = (int) bounds.width();
params.height = (int) bounds.height();
params.x = (int) bounds.left;
params.y = (int) bounds.top;
video.requestLayout();
video.setVisibility(View.VISIBLE);
video.setFocusable(true);
video.setFocusableInTouchMode(true);
video.requestFocus();
File file = new File(videoUrl);
video.setVideoPath(file.getAbsolutePath());
video.start();
}
Run Code Online (Sandbox Code Playgroud)
但视频没有调整到我指定的范围.
有小费吗?
另一个相关的问题是,如何通过VideoView使MediaController显示?
我开发了一个Android 3.0应用程序,它运行得很好,但客户端坚持与2.2设备的兼容性.
禁用硬件加速,使用Android兼容包,NIO-backport支持(对于任务和执行程序)和一些View方法的重新实现我能够移植我的Android 2.2应用程序并且工作得非常好,但是如果我将这个apk运行到更新的设备的性能非常慢,所以我想知道如何启用硬件加速,但仍然使用我的2.2 APK.
android android-manifest apk android-hardware android-compatibility
存在用于在Android上绘制PDF文件的库吗?
我找到了PDFBox,这是一个JSE库,想知道它是否可以用来在Android上绘制PDF.
我知道Android将标准字节码转换为Dalvik Bytecodes,但它如何将类似BufferedImage的类转换为框架可以将PDF文件转换为?
即使对于付费图书馆,任何建议都是有帮助的.
我正在通过NDK将原生API包装到Android.
但是在构建它时没有找到头文件.
我有以下结构.
项目/ JNI
Android.mk
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
LOCAL_PATH :=/home/marcos/dev/workspace/rmsdk.native.wraper/jni
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := ndk1
LOCAL_SRC_FILES := native.c DelegateDRMProcessorClient.cpp
LOCAL_STATIC_LIBRARY := adept cryptopenssl dp expat fonts hobbes jpeg mschema png t3 xml zlib
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
项目/ JNI/prereqs /
Android.mk(用于调用所有子目录Android.mk文件)
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
include $(CLEAR_VARS)
Run Code Online (Sandbox Code Playgroud)
项目/ JNI/prereqs /%LIB%/
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=dp
LOCAL_SRC_FILES :=libdp.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
每个%lib%文件夹上都有一个include文件夹.
当使用ndk-build时,我得到一个"/home/marcos/dev/workspace/rmsdk.native.wraper/jni/DelegateDRMProcessorClient.h:18:20:错误:dp_all.h:没有这样的文件或目录"
任何人都知道如何包含这些头可供编译器使用?
我有以下XML:
<RelativeLayout android:id="@+id/cover_box"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@+id/cover"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@+id/download" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/mark_download"
android:layout_centerInParent="true" android:layout_marginTop="90px" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
但它看起来就像marginTop被忽略了.
我有以下GestureListener:
public class BookListener extends SimpleOnGestureListener implements
OnTouchListener {
private LibraryActivity main;
private Book book;
private GestureDetector gesture;
public BookListener(Book book, LibraryActivity main) {
this.main = main;
this.book = book;
gesture = new GestureDetector(main,this);
}
public boolean onDoubleTap(MotionEvent e) {
main.showInfo(book);
return true;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
main.openBook(book.getUrl());
return true;
}
public boolean onDown(MotionEvent evt){
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gesture.onTouchEvent(event);
}
}
Run Code Online (Sandbox Code Playgroud)
我通过这种方式将它添加到我的视图中:
view.setOnTouchListener(new BookListener(book, main));
Run Code Online (Sandbox Code Playgroud)
但是在运行时,事件不会被触发,我调试它,我看到onDown被调用,但onSingleTapConfirmed或onDoubleTap nevers工作.
怎么了?
我的代码完美无缺: …
在我的GestureDetector中使用LongPress后,如何收听移动事件?
当用户LongClick他启动选择模式时,可以将一个方块拖入屏幕.但我注意到在使用LongPress后没有调用onScroll.
我知道菜单项将被设置为ActionBar中的动作图标.
我想知道这个onCreateOptionsMenu函数,它什么时候在活动生命周期中调用.
从我的测试来看,它甚至没有在onResume之后
android ×10
android-ndk ×2
listener ×2
android-menu ×1
android-view ×1
apk ×1
arrays ×1
gesture ×1
java ×1
pdf ×1
pdfbox ×1
pdfrenderer ×1
renderer ×1