按下button时如何closures键盘?
如何以编程方式查找我的屏幕大小,触摸事件和视图测量/布局使用的单位? 换句话说,我需要触摸事件getRawX()/getRawY()和View.getLocationOnScreen()所使用的坐标系中屏幕右下angular的坐标。 我很犹豫要调用所需的事件/视图单位的“像素”,因为显然在手机上有不同模式的“像素”的几个概念,而且他们没有添加到一致的故事。 我看到这已经被问及在stackoverflow和其他地方回答了很多,但没有答案实际上在我的手机(droid 4,android 4.1.2)在所有模式下工作: 我可以在android应用程序中以编程方式找出屏幕的宽度吗? 如何在android中以编程方式获取ScreenSize Android设置根据屏幕大小以编程方式查看可见性 如何获得Android屏幕的高度? 在Android中获取屏幕高度 https://groups.google.com/forum/#!topic/android-developers/IpxnfvDFrpc http://shuklaxyz.blogspot.com/2012/02/how-to-programmatically-figure-out.html http://coderock.net/how-to-determine-screen-resolution-programmatically/ http://www.codeproject.com/Tips/313848/Get-actual-screen-size-for-the-application-layout Android和以dp为单位编程设置宽度和高度 http://www.simplecodestuffs.com/how-to-get-screen-dimensions-programmatically-in-android/ http://www.androidsnippets.com/get-size-and-orientation-of-the-screen http://grokbase.com/t/gg/android-developers/127aatfqb6/how-to-determine-screen-resolution-programmatically (哇!) 这是针对无论应用程序是否处于“屏幕兼容模式”(即清单中的targetSdkVersion <= 10)都需要工作的库代码,我也不想对位置,大小,或状态栏或任何其他类似的屏幕装饰的存在。 这里是事实: 我的手机(一个运行android 4.1.2的droid 4)具有540×960的物理像素,即小彩色发光点。 当应用程序处于屏幕共享模式时,通过查看触摸事件和查看测量,所需单位的屏幕大小为360×640,当应用程序不处于屏幕共享模式时,屏幕大小为540×960。 这些是我需要find编号的数字,没有用触摸事件或视图来查找它们,但我很难find任何API将返回这些数字。 以各种方式获得的Display和DisplayMetrics对象都声称屏幕尺寸是540×960“像素”(不pipe是否在屏幕兼容模式下)。 具体而言,以下全部都是540×960:DisplayMetrics。{width,height}像素,Display.getSize(),Display.getRealSize(),Display.get {Width,Height}(), 以各种方式获得的configuration对象都表示屏幕{宽度,高度} Dp = 360×614(不pipe是否在屏幕兼容模式下)。 由于纵横比是错误的,我不相信这代表整个屏幕。 (我认为这是整个屏幕减去状态栏,我需要整个屏幕)。我认为可以说整个屏幕是360×640 dp是安全的,但我不知道任何API返回640。 以各种方式获得的DisplayMetrics说,在屏幕兼容模式下,“密度”是1.0f,当不在屏幕兼容模式时,是1.5f。 活动的getWindow().getAttributes().{width,height}没有帮助,因为它通常包含MATCH_PARENT而不是实际大小。 但我可以显然从一个活动的getWindow().getDecorView().getMeasured{Width,Height}() (这实际上是令人惊讶的,因为活动的窗口的decorView 看起来不像是占据整个屏幕;看起来像占用屏幕减去状态栏)。 但是我不想依赖这个,因为如果窗口被重新resize(软键盘出现?有人调用window.setAttributes()?或者我根本不在Activity中),这显然是所有的错误。 我知道下面的公式应该是这样的:pixels = dp * density当不在屏幕兼容模式时,似乎与所有报告的数字((3),(4),(5))一致:540×960 = 360×640 * 1.5但在屏幕兼容模式下,它不加起来:540×960!= 360×640 […]
apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' // load properties Properties properties = new Properties() File localPropertiesFile = project.file("local.properties"); if(localPropertiesFile.exists()){ properties.load(localPropertiesFile.newDataInputStream()) } File projectPropertiesFile = project.file("project.properties"); if(projectPropertiesFile.exists()){ properties.load(projectPropertiesFile.newDataInputStream()) } //read properties def projectName = properties.getProperty("project.name") def projectGroupId = properties.getProperty("project.groupId") def projectArtifactId = properties.getProperty("project.artifactId") def projectVersionName = android.defaultConfig.versionName def projectPackaging = properties.getProperty("project.packaging") def projectSiteUrl = properties.getProperty("project.siteUrl") def […]
可能重复: Ems是什么意思? (Android TextView) 在EditText有一个名为android:ems的属性。 描述是“使EditText正好是这么多ems宽” ems是什么意思?
似乎没有可能将新行“/ n”添加到XML资源string中。 有没有另外一种方法呢? 谢谢
我有一个自定义的全局类,看起来像这样 import android.app.Application; public class MyApp extends Application { public String MainAct; public String getMainAct() { return MainAct; } public void setMainAct(String mainAct) { MainAct = mainAct; } } 我想通过onCreate方法中的另一个Activity在这个类中保留一个string。 String local = "myLocalVariable"; ((MyApp) getApplication()).setMainAct(local); //breaks here!!! String name = ((MyApp) getApplication()).getMainAct(); 它在标记的行上出现错误: Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.yyy.global.MyApp 我已经检查了五次代码,我找不到任何地方的错误。 谁能告诉我错误在哪里?! […]
由于我不知道的原因,languageLevel键从JDK_1_8更改为JDK_1_7。 可能会发生什么? 这与这个项目的其他开发者的IDE有什么关系? 也许他们有另一个Android Studio设置? 在我注意到源代码pipe理下的文件已经改变之后,popup的是: $ git diff diff –git a/.idea/misc.xml b/.idea/misc.xml index fbb6828..5d19981 100644 — a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ <ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Remove" /> </component> – <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" […]
我想实现一个开关button,android.widget.Switch(可从API v.14中获得)。 <Switch android:id="@+id/switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch" /> 但我不知道如何添加一个事件监听器的button。 它应该是一个“onclick”的听众? 我怎么知道它是否“打开”?
Android Studio使用modules的概念,而Eclipse等其他IDE使用projects 。 但是,“ File菜单可以select创buildNew Module以及new Project 。 这两者之间有什么区别? 哪一个被推荐使用?
如何更改Android版本和代码版本号Android Studio? 我想在Google Play上更改apk文件(app),我需要更改android版本和代码版本号。 我在Android Studio的AndroidManifest.xml文件中尝试了这一点: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bestsoftcorporation.circle.app" android:versionCode="101" android:versionName="2.0"> 但它不会工作。 当我试图在Google Play上发布它时,显示我必须更改android版本名称和代码。 请帮助。