我意识到这个话题已经被解决了,我已经阅读了关于它的官方和非官方的开发者指南,所以知道了这个理论.但我仍然不确定采取哪种方法来确保我的应用在多种屏幕尺寸上看起来很好.我的应用程序是一个简单的导航样式应用程序,旨在只是肖像.在这个阶段,我对制作平板电脑的横向或多窗格屏幕的不同设计不感兴趣.我只是希望每个屏幕都按比例放大/缩小,以便它与显示的屏幕尺寸成比例 - 即文本和图像适当地上/下调整大小.我为经典的480x800 hdpi设备设计了应用程序,它看起来很棒,我只想让它看起来与Galaxy S3/Nexus 7等成比例.我已经遵循这些指导方针:
但是我发现它在大型设备的屏幕中间仍然看起来很小而且有点丢失.特别是,我的主菜单屏幕是一个由6个图像按钮组成的网格,我无法很好地扩展.我不希望有多个副本来维护相同的屏幕(普通/大/ xlarge),只想要一个布局.我正在考虑以下事项:
是这些有效的方法之一,还是有更好的方法?
layout scaling android android-layout android-screen-support
我正在开发我的第一个Android应用,以使用Google云消息传递(GCM)服务进行推送通知.我已经到了可以从我的服务器应用程序成功发送消息的位置,并在客户端应用程序上的GCMIntentService类中的onMessage事件中记录消息的内容.但是,我没有在设备上看到任何收到消息的可视指示.我期待这条消息出现在手机的下拉通知列表中,就像在iPhone上一样.这是否必须手动编码?还有一种显示消息的常用方法,无论当前哪个活动处于活动状态,以及应用程序是否在后台处于空闲状态?任何帮助赞赏.
java notifications android push-notification google-cloud-messaging
我正在尝试使用REST over HTTPS连接我的DataSnap服务,包括我的Delphi Win32应用程序和Android应用程序.在我的Delphi客户端中,我收到消息'Connection Closed Gracefully',我的Android应用程序失败并显示'No peer certificate'.我猜我需要在客户端安装一些东西.我已按照其他帖子的建议在Win32应用程序的EXE文件夹中安装了2个OpenSSL DLL"libeay32.dll"和"ssleay32.dll",但这并没有解决问题.
需要注意的一点是,我可以使用DBXpress通过使用TSQLConnection组件从Win32应用程序成功连接HTTPS.它只是使用TDSRESTConnection不起作用.使用Android我只能选择REST.
希望我只是缺少一些简单的东西?
我有一个包含UIWebView的UIViewController,我用它来查看各种文档.偶尔可能会尝试加载UIWebView不支持的文档(例如旧的Excel 2.0工作表).目前,这会导致调试窗口中的输出如下:
exception:CPMessageException:文件格式无效.
EXCEPTION CPMessageException:(null)
触发webViewDidStartLoad方法,但不会触发webViewDidFinishLoad或didFailLoadWithError.
该错误不会使应用程序崩溃,但我想捕获此异常以便为用户提供我自己的消息.任何人都可以建议如何陷阱和处理这个?
非常感谢,乔纳森
我有一个Delphi XE2 DataSnap服务器(Windows服务)连接到服务REST客户端请求的后端MS SQL Server 2008(相同的服务器盒).
直到最近,一切都工作得很好,我遇到了一个问题,由于某种原因,DataSnap服务失去了与SQL Server的连接.
该服务无法重新建立连接,我不得不重新启动DataSnap服务以继续.
这让我思考,因为目前该服务仅使用为所有客户端请求共享的1个SQL连接(TADOConnection).我这样做是因为我不希望为每个客户端请求实例化一个新的SQL连接.
我正在考虑为每个请求建立一个单独的SQL连接是否真的会更好,如果开销会很明显 - 有人可以评论/建议吗?
我使用的是建立一个设置屏幕PreferenceFragment内PreferenceActivity。除烦人的问题外,一切正常,除了在EditTextPreference对话框关闭后通过单击“取消”,“确定”或在对话框外单击,软键盘仍然可见。
这是我使用API级别15(4.0.3)构建的第一个应用程序。我以前的应用程序是针对API级别8(2.2)的,仅用PreferenceActivity于其设置(无片段)。在该应用程序中,在单击“取消”,“确定”或在对话框外部时,键盘始终自动关闭-无需输入代码。
现在,在关闭EditTextPreference对话框后必须对键盘的关闭进行编码是否正常?如果是这样,我需要使用哪个事件来捕获此事件?
keyboard android preferenceactivity android-softkeyboard edittextpreference
我在Android应用程序中使用Jackson JSON库从REST API解析JSON。除了我正在使用的几个实例ObjectMapper.readValue以及ObjectMapper.treeToValue将JSON反序列化为对象之外,其他一切工作都很好。每次运行“ debug”构建变体时,它都能正常工作,但运行“ release”构建时,它将无法创建对象,而仅返回null。
我已经阅读了很多有关确保Proguard设置正确配置的信息,但是我没有使用Proguard,而是在我的应用程序中删除了对Proguard的所有引用。还有什么可能导致“发布”版本出现问题?
乔纳森
我们创建了一个DialogFlow代理,该代理链接到Google Assistant项目上的Google智能助理聊天机器人.我们的聊天机器人要求用户在我们的后端系统中拥有有效的用户帐户,因此我们使用Google Play上的"帐户关联"功能.这是有效的,但我发现每次我对代理进行最轻微的更改并保存更改,下次我使用模拟器或Google智能助理应用程序时它告诉我我的用户不再链接,我必须去再次通过链接过程.这不可能是正确的 - 用户每次更新项目时都不必重新链接他们的帐户?我还没有发送应用程序进行审核 - 我仍然在'草稿'中测试它.
我有APNS消息运行良好.但是,我想更改发送的邮件的标题.目前,标题始终是我的应用程序的名称.我看到本机iOS"邮件"应用的通知将"发件人"地址作为邮件标题,并且电子邮件主题以粗体显示为通知的子标题.我想为我的应用程序的通知重现这一点,但无法看到如何执行此操作.JSON有效负载似乎只有一个"警报"键,没有提到"标题"键.有可能实现我想要的吗?
我正在使用来自http://loopj.com/android-async-http/的AsyncHttpClient库,让它可以调用Web服务来检索JSON响应.我现在正试图调用一个Web服务,通过HTTP将文件流回客户端.因此我使用BinaryHttpResponseHandler来捕获返回的byte []数据.但是,每当我尝试调用该方法时它都会失败,并且在检查Throwable对象时,异常是'org.apache.http.client.HttpResponseException:不允许Content-Type!".
我已经尝试根据文档指定允许的内容类型列表,但这并没有什么不同.我主要是流式传输PDF,但理想情况下我不想指定内容类型列表,我希望能够下载任何文件类型.我正在使用的代码如下:
AsyncHttpClient httpClient = new AsyncHttpClient();
String[] allowedContentTypes = new String[] { "application/pdf", "image/png", "image/jpeg" };
httpClient.get(myWebServiceURL, new BinaryHttpResponseHandler(allowedContentTypes) {
@Override
public void onSuccess(byte[] binaryData) {
// ....
}
@Override
public void onFailure(Throwable error, byte[] binaryData) {
// ....
Log.e("Download-onFailure", error.getMessage());
}
});
Run Code Online (Sandbox Code Playgroud)
我还尝试不指定任何内容类型,只使用:
new BinaryHttpResponseHandler()
Run Code Online (Sandbox Code Playgroud)
但这并没有什么区别.