我是一名Android开发人员,刚刚开始使用BlackBerry.我正在尝试将我创建的Android应用程序移植到BB.在这样做我已经开始使用此命令:
Backlight.enable(true);
Run Code Online (Sandbox Code Playgroud)
此命令要求我获取代码签名密钥并开始签署我的应用程序.在我看来,每次我对代码进行任何更改时,我都必须重新签名此应用程序.当我完成签名过程时,我被告知有76个文件需要签名.每次签名完成后,我会收到76封电子邮件,告诉我签名已成功完成.这意味着在开发过程中,我每天都会接收数百封甚至数千封电子邮件.
我的问题是:这真的是工作流程应该是怎样的吗?我在签名过程中没有做正确的事情,每次我想要运行新版本时都会让我签名吗?
我现在这样做似乎完全是荒谬的,所以我希望我只是忽略了一些东西,实际上并不是这么糟糕.
我有一个活动,其布局只包含一个VideoView.这是xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<VideoView
android:id="@+id/videoplayer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
>
</VideoView>
Run Code Online (Sandbox Code Playgroud)
我试图在停止播放后将此动画应用于VideoView:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="500"/>
<scale
android:fromXScale="1.0"
android:toXScale="0"
android:fromYScale="1.0"
android:toYScale="0"
android:duration="500"
android:pivotX="50%"
android:pivotY="0%"
/>
</set>
Run Code Online (Sandbox Code Playgroud)
这显示出完美的效果.但是如果我在布局中从LinearLayout切换到RelativeLayout,则动画不再有效,视频会在停止之前显示的最后一帧上冻结.
为什么我的活动中的根布局类型会导致动画无法正常运行?
编辑:如果我添加此TextView,添加到怪异
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" ">
</TextView>
Run Code Online (Sandbox Code Playgroud)
对于VideoView下面的RelativeLayout,动画将起作用.但是,如果我从这个android:text元素中取出空间,那么它又回来了.OO
编辑:我已经将Beowulf Bjornson的赏金授予使用新动画框架的好处.
但是我仍然非常感兴趣,如果有人在这种情况下弄清楚旧式动画的情况,我会非常乐意为此提出更多的观点.
我有一个连接到Web服务的应用程序.我有一个用户使用LG Optimus T,只要应用程序尝试连接到他设备上的Web服务,就会收到FileNotFoundException.我知道该设备已连接到互联网,因为他向我发送了一些这种情况的日志输出,我可以看到我的应用程序已成功连接到其他Web服务.我去了一家本地的T移动商店并在3g和wifi上测试了我的应用程序,它对我来说很好用(用户只能使用wifi btw,他没有访问3g)其他人是否有URL问题.openStream()调用抛出FileNotFound,即使url有效且设备已连接到互联网?如果是这样你是如何解决的?
我有一个包含两个活动的应用程序
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
在清单中.我这样做是为了在app抽屉中有2个单独的条目.它适用于app抽屉.
我的问题出现在安装过程中.安装只有一个MAIN/LAUNCHER活动的应用程序后,最后一页有一个打开按钮,将启动刚刚安装的应用程序.使用我的应用程序,此打开按钮显示为灰色.我认为这是因为如果按下打开按钮,它不知道我希望它启动哪两项活动.我可以在清单(或其他地方)中设置任何内容来指定在安装过程结束时我希望打开按钮启动哪个活动?我想我必须要设置一些东西,因为当我通过adb用eclipse安装应用程序时,它启动了两个活动中的一个,幸运的是它实际上是我希望它启动的那个.
嘿我试图在应用程序抽屉中找到我的应用程序有点问题,它出现在其他地方 - 最近的应用程序(通过按住主页),它也在应用程序下的设置中.
它不是唯一的地方在app抽屉里,我的第一个猜测是Manifest?
该应用程序运行完美.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zaknorris.brainhacker.v1"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="Brain Hacker Pro"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="Brain Hacker Pro" >
<intent-filter>
<action android:name="com.zaknorris.brainhacker.v1.Menu" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".attentionbuilder"
android:label="Attention Builder" >
<intent-filter>
<action android:name="com.zaknorris.brainhacker.v1.attentionbuilder" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
图标在drawable中就在那里和一切.
不确定发生了什么:\
Java新手
我有一个HTML页面,其中包含一个iframe,可加载任意页面。
<iframe id="siteframe" style="width: 400px; height: 400px;" src="http://www.cnn.com"></iframe>
Run Code Online (Sandbox Code Playgroud)
我希望能够获得页面的滚动位置内的JavaScript / jQuery的iframe中。在html / js方面,我还是有点绿色,但是我已经尝试了使用scrollTop和scrollLeft的几种不同形式,但是没有成功。这是一个无效的:
write($("#siteframe").contents().scrollLeft() + ", " + $("#siteframe").contents().scrollTop());
Run Code Online (Sandbox Code Playgroud)
这个代码什么也不会写(write是一种只附加到屏幕上文本的方法)。
如果我这样删除.contents():
write($("#siteframe").scrollLeft() + ", " + $("#siteframe").scrollTop());
Run Code Online (Sandbox Code Playgroud)
它至少会在屏幕上写入一些内容,但是无论iframe中实际的滚动位置在哪里,它始终为0,0。
在javascript中获取iframe中内容的x,y位置的正确方法是什么,以便我的外部页面(包含iframe)可以使用它?
我正在使用Geofence API示例应用程序我已经运行它似乎工作正常.我确实对它进行了修改以使用BroadcastReceiver而不是IntentService.
但是,如果我打开其他使用GPS的应用程序(如地图或GPS测试器应用程序),我只会收到通知.
如果我没有其中一个应用程序打开,我走进地理围栏区没有任何反应.但是只要我启动其中一个,我就会在几秒钟内收到通知.
我有一个带有VideoView的应用程序,可以反复循环播放相同的视频,直到用户对设备执行某些操作(触摸屏等).目前我正在使用OnCompletionListener()在视频结束时重新启动视频.除了Samsung Replenish之外,这在我测试的每台设备上都能正常工作.
这是我的代码:
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mVideoView.setVideoPath(file.getAbsolutePath());
mVideoView.start();
}
});
Run Code Online (Sandbox Code Playgroud)
Replenish上发生的事情是视频一直播放一次,但之后再也没有开始,屏幕全黑(但背光仍然打开).在我使用完全相同的代码进行测试的每一台设备上,它都重复了视频.有没有人知道有关可能导致此错误的补充的任何具体信息?我想可能会延迟对setVideoPath()的调用,而start()200-300ms可能对它有所帮助,但这没有任何影响.我真的很茫然.
我在日志中看到这些消息:
ERROR/QCvdec(87):当vdec尚未初始化时发出Omx Flush.
错误/ QCvdec(87):OMXCORE-SM:接收命令DISABLE(2)
ERROR/QCvdec(87):当vdec尚未初始化时发出Omx Flush.
错误/ QCvdec(87):OMXCORE-SM:接收命令ENABLE(3)
但是这些日志在视频启动时(第一次播放时)和无法再次启动时都会发生.所以我不确定他们是否与我的问题有关
编辑:
我只是尝试将mVideoView设置为null,然后在setVideoPath()之前使用findViewById()获取对它的新引用.我知道这会使OnCompletionListener的设置方式复杂化.但无论如何它仍然没有工作,仍然是相同的黑屏.
编辑2:
我开始注意到有时视频甚至没有第一次启动.我正在使用这两条线来第一次启动它:
mVideoView.setVideoPath(file.getAbsolutePath());
mVideoView.start();
Run Code Online (Sandbox Code Playgroud)
它似乎开始更加一致,但在它第一次播放时却不是100%.
编辑3:这就是我现在设置它的方式.我手动设置OnPreparedListener为我启动视频.所以我把它添加到我的onCreate()
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mVideoView.start();
}
});
Run Code Online (Sandbox Code Playgroud)
然后,当我准备重新启动视频时,我只调用setVideoPath()方法,如下所示:
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mVideoView.setVideoPath(file.getAbsolutePath());
}
});
Run Code Online (Sandbox Code Playgroud)
这似乎是在做伎俩.我让它运行一段时间才能确定.
编辑4:
@MByD在VideoView的代码中,setVideoPath()是setVideoUri()的包装器.setVideoURI()正在设置mStartWhenPrepared = false;默认的OnPreparedListener检查此开关以决定是否开始播放.这就是它不以默认侦听器开头的原因.我没有比这更多地研究它,但是可能有一个setter方法允许我将mStartWhenPrepared值更改为true,这将导致视频从默认侦听器启动.
作为Android的新用户(曾经在WP7上使用Bing地图)我假设将映射功能放入Android应用程序的默认方式是使用MapView控件 - 地图视图教程中的一个.
鉴于此,似乎有一些问题...使用教程地图视图应用程序,我居住的地方最初显示为超过7岁(我的道路仍然是原始土地).然后,大约一个星期后,我再次运行它,它是最新的(我的房子和街道在那里).然后,昨天我再次运行它再次超过7岁,今天它再次更新.这里发生了什么??如何使用这样的地图服务编写高质量的应用程序?
当我在google.com上使用谷歌地图时,它始终是最新的.谢谢,迪恩
我有一个带有VideoView的应用程序,它从内部存储器(我的包files目录)播放mp4文件
在一些三星Epic Touch 4g(Galaxy SII)设备上,而不是显示的视频,屏幕是完全黑色的.我的应用程序中的其他所有内容都表现正常并且响应正常,因此设备根本不会"冻结",它只是在屏幕上显示黑色而不是视频.
要启动我的视频,我使用onPreparedListener回调来调用start():
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mVideoView.start();
}
});
Run Code Online (Sandbox Code Playgroud)
然后我设置要使用此通话播放的视频:
//file is the reference to my video File object.
//I am positive that it is correct
mVideoView.setVideoPath(file.getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)
我有一个onErrorListener设置如下:
mVideoView.setOnErrorListener(new OnErrorListener(){
@Override
public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
Log.i(myTag, "MP ERROR: "+ arg1 + " - " + arg2);
/* I have also tried this here, no luck this way either
mVideoView.setVideoPath(file.getAbsolutePath());
return true;
*/ …Run Code Online (Sandbox Code Playgroud) android ×8
animation ×1
blackberry ×1
code-signing ×1
google-maps ×1
gps ×1
html ×1
iframe ×1
install ×1
javascript ×1
jquery ×1
location ×1
manifest ×1
mp4 ×1
scroll ×1
url ×1
web-services ×1