Articles of 安卓

在Intellij想法中使用android.support.v4库

在我的Android项目中,我尝试使用android.support.v4.widget.DrawerLayout 。 在它之前,我将它添加到libs库( cp MySdkForder/extras/android/support/v4/android-support-v4.jar MyProjectFolder/libs ) 之后,我将其添加到classpath如下所示: 所以我有我的main.xml文件中的这样的代码 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111" /> </android.support.v4.widget.DrawerLayout> 这一个我在developer.android.com某个地方 主意使这个代码完全好 我试图启动时出现问题。 当我按run我从adb有以下错误 Cannot reload AVD list: cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, […]

如何显示一次性欢迎屏幕?

在我的android应用程序中,我需要devise一个欢迎屏幕,只有在安装并打开应用程序后才会显示给用户。 这个应用程序是一个数据库驱动的应用程序,我很想包括一些3-4屏幕,以帮助用户创build可重复使用的资源在应用程序内使用和一些提示。 他们将是对话框警报,最后一个欢迎屏幕显示“不再显示”checkbox。 问题实际上是,如何只显示一次欢迎屏幕。 任何帮助或指向这种效果非常感谢。

扩展RelativeLayout,并重写dispatchDraw()来创build一个可缩放的ViewGroup

我见过一些人问如何一次性缩放整个ViewGroup(比如RelativeLayout)。 目前,这是我需要实现的。 对我而言,最明显的方法是将缩放比例因子作为单个variables保存在某处; 并在每个子视图的onDraw()方法中,绘制graphics之前,该比例因子将应用于Canvas。 然而,在做这件事之前,我试图变聪明(哈 – 通常是一个坏主意),并将RelativeLayout扩展成一个名为ZoomableRelativeLayout的类。 我的想法是任何缩放转换只能在重写的dispatchDraw()函数中应用到Canvas中,因此绝对不需要在任何子视图中单独应用缩放。 这是我在ZoomableRelativeLayout中所做的。 这只是RelativeLayout的一个简单扩展,dispatchDraw()被覆盖: protected void dispatchDraw(Canvas canvas){ canvas.save(Canvas.MATRIX_SAVE_FLAG); canvas.scale(mScaleFactor, mScaleFactor); super.dispatchDraw(canvas); canvas.restore(); } mScaleFactor由同一个类中的ScaleListener操纵。 它确实工作。 我可以捏放大ZoomableRelativeLayout,所有视图保持适当重新调整。 除了有问题。 其中一些孩子的意见是animation,因此我周期性地调用invalidate()。 当比例为1时,那些孩子的观点被认为是周期性重绘的完美。 当比例不等于1时,那些animation儿童视图只能看到在他们的观看区域的一部分中更新 – 或根本不会 – 根据缩放比例。 我最初的想法是,当一个单独的子视图的invalidate()被调用时,它可能会被系统单独重画,而不是从父亲RelativeLayout的dispatchDraw()传递一个Canvas,这意味着子视图最终会刷新自己没有应用缩放比例。 但奇怪的是,在屏幕上重绘的子视图的元素是正确的缩放比例。 这几乎就像系统决定在后台位图中实际更新的区域保持未缩放 – 如果这是有道理的。 换句话说,如果我有一个单独的animation子视图,并且我从初始缩放比例1逐渐放大,并且如果我们在放大比例为1时在该子视图所在的区域放置一个虚拟框,那么对invalidate()的调用只会导致该虚拟框中的graphics刷新。 但是看到更新的graphics正在被正确地完成。 如果放大到目前为止,子视图现在已经完全从1的比例移开,那么根本没有任何部分被刷新。 我将举另一个例子:假设我的孩子的视图是一个通过在黄色和红色之间切换而animation的球。 如果我放大一点,球就会向右下方移动,在某个点上,您只会看到球的左上angular四分之一的animation颜色。 如果我不断地放大和缩小,我就会看到孩子正确完整地看到animation。 这是因为整个ViewGroup正在重绘。 我希望这是有道理的; 我试着尽我所能解释。 我可以用我的可缩放的ViewGroup策略做一个失败者吗? 有另一种方法吗? 谢谢, 崔佛

如何在Android中将屏幕保持横向模式

我有一个活动应该总是显示在风景模式 。 所以我加了android:screenOrientation="landscape" 。 但问题是,当我旋转180度的设备,显示倒置。 有没有办法来处理这个问题,以便屏幕元素始终显示正确。

如何在Android Studio / IntelliJ中导入Maven依赖项?

我已经使用Android Studio中的默认向导创build了一个新的Android项目。 编译,并将应用程序部署到我的设备。 一切都很好。 现在我想导入一个在Maven上可用的外部库。 ( http://square.github.io/picasso/ )。 我去了模块属性,并添加了一个Maven库。 它在依赖列表中正确显示。 另外,它显示在编辑器中,我可以在代码中正确使用它。 但是,在编译时,我得到一个Gradle错误:无法find类 有任何想法吗?

Android / Java – date差异

我使用下面的代码获取当前date(格式为12/31/1999,即mm / dd / yyyy): Textview txtViewData; txtViewDate.setText("Today is " + android.text.format.DateFormat.getDateFormat(this).format(new Date())); 我还有一个格式为:2010-08-25(即yyyy / mm / dd), 所以我想find天数之间的差异,我怎么才能find在天差异? (换句话说,我想findCURRENT DATE – yyyy / mm / dd格式化date之间的区别)

android studio ctrl +空格打开文档窗口

我已经将我的Android Studio更新到最新版本,但现在当我使用CTRL + SPACE调用自动完成/build议时,build议框将打开,但文档窗口也会打开。 有没有人经历过这一点,知道如何禁用打开文档窗口?

java.lang.IllegalArgumentException:包含一个path分隔符

我的代码中有一个文件名: String NAME_OF_FILE="//sdcard//imageq.png"; FileInputStream fis =this.openFileInput(NAME_OF_FILE); // 2nd line 我在第二行发生错误: 05-11 16:49:06.355:错误/ AndroidRuntime(4570):引起:java.lang.IllegalArgumentException:文件//sdcard//imageq.png包含一个path分隔符 我也尝试过这种格式: String NAME_OF_FILE="/sdcard/imageq.png";

input后EditText setError消息不清除

好,所以我只有一个EditText字段和一个button,当按下时触发一个AsyncTask。 EditText playerName = (EditText)findViewById(R.id.playerEditText); if(playerName.getText().toString().length() == 0 ) playerName.setError("Player name is required!"); else { // do async task } 问题是,即使在input有效文本进行search之后,错误消息仍然保持不变。 是否有一种方法来删除EditText不是空的一旦错误?

检查是否有正确的Google Play服务:“不幸的是,应用程序已停止工作”

应用程序崩溃,每次我在我的手机上运行它。 有什么不对? 它说不幸的是“appname”已经停止工作。 我也尝试其他方法来检查谷歌播放服务,但它总是崩溃。 我更新了我的谷歌播放服务,并有一个工作谷歌地图V2完美的工作。 这个代码的任何解决scheme? 它在运行android 4.1.2和我的AVD的手机上崩溃。 package com.example.checkgoogleplayproject; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; import android.view.Menu; import android.widget.TextView; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; public class MainActivity extends Activity { @Override protected void onResume() { super.onResume(); // Getting reference to TextView to show the status TextView tvStatus = (TextView)findViewById(R.id.tv_status); // Getting status int status = […]