Articles of android

在命令行上卸载Android SDK的选定部分

这与“卸载旧的Android SDK版本”有关 ,除了我想在无头的Linux CI服务器上进行此操作(磁盘空间不足)。 android命令行工具是否提供了删除SDK的旧部分的选项? 通过快速查看,它可以删除的唯一内容是AVD。 我忽视了什么吗? 或者,我想我可以手动删除SDK_HOME下的内容。 但删除哪些东西是安全的? 其他候选人比这些? 我只需要支持API级别14及以上,所以我想我可以在platforms/像android-3和android-4下删除东西。 docs (800MB), samples (300MB) system-images怎么样? 我是否需要例如android-18/armeabi-v7a/和android-18/x86/如果我只想使用Gradle(和Ant)进行自动APK构建(没有模拟器的东西)? 至少在完全删除docs ,下次我运行android update sdk –no-ui ,它再次开始获取它们: Downloading Documentation for Android SDK, API 19, revision 1 我可以避免update添加我扔掉的SDK部分吗? 免责声明:是的,磁盘很便宜,我真的应该添加更多。 但是现在这个特定的服务器 (8.5G磁盘)我没有那个选项,但我还是想让它运行Android 19版本…

具有自定义ArrayAdapter的微调器,用于不显示所选项的对象

我有一个自定义ArrayAdapter来表示微调控件上的对象,我可以加载我的项目列表并显示它以供选择,但是当实际选择发生时,微调器没有显示任何内容。 活动代码: public MetroData metroData; private Spinner spinner; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); metroData = new MetroData(); spinner = (Spinner) findViewById(R.id.spinner1); StopArrayAdapter dAdapter = new StopArrayAdapter(this, metroData.Stops); spinner.setAdapter(dAdapter); } StopArrayAdapter: public class StopArrayAdapter extends ArrayAdapter { private List items; private Activity activity; public StopArrayAdapter(Activity activity, List items) { super(activity, android.R.layout.simple_list_item_1, items); this.items […]

铃声一遍又一遍地播放(无限循环播放)

我有一个Android应用程序,当某些事件发送到BroadcastReceiver时播放通知铃声( RingtoneManager.TYPE_NOTIFICATION )。 播放铃声的代码基本上是这样的: onReceive(Context context, Intent intent) { … Uri ringtoneUri = someFunctionToLookupAValidNotificationRingtoneUri(); … Ringtone tone = RingtoneManager.getRingtone(context, uri); Log.v(TAG, “About to play ringtone”); tone.play(); } 每当这段代码运行时,铃声就会无限地开始一遍又一遍地播放。 有时它会在大量事件紧密聚集在一起时发生,但是当只有一个事件进入时也会发生。日志消息(和调试)validation每个事件只发生一次tone.play()调用,并且没有无限的事件流。 阻止无限循环的唯一方法是杀死我的应用程序。 这几乎就像每隔一段时间一样,Android会忘记刷新声音输出缓冲区,因此它会通过播放内部的任何内容来保持循环。 有关如何调试和/或解决此问题的任何想法?

如何从Android上的ListActivity创建DialogFragment?

我有一个主要活动的应用程序扩展ListActivity并显示一堆项目。 而且我想在点击列表项目后显示自定义DialogFragment(用于编辑项目信息)。 但是根据Google的android教程http://developer.android.com/guide/topics/ui/dialogs.html我只能从扩展FragmentActivity的活动中显示DialogFragment,因为需要调用getSupportFragmentManager()方法。 所以问题是:如何从ListActivity显示自定义对话框? 谢谢 :)

我可以在不使用库的情况下在Android项目之间共享代码和资源吗?

在Android项目之间共享代码和资源的标准建议是使用库。 就个人而言,如果(a)共享代码发生了很大变化,或者(b)您的计算机速度不够快,我发现这种方法效果不佳。 我也不想进入部署多个APK,这在使用依赖项目时似乎是必要的(即Java Build Path,Projects选项卡)。 另一方面,使用Eclipse链接源function共享源代码文件夹效果很好(Java Build Path,Source选项卡,Link Source按钮),但是对于这两个问题: 1)我不能使用相同的技术来共享资源。 我可以创建资源父文件夹的链接,但事情变得很糟糕,共享资源不会被编译(我正在使用ADT 21)。 2)所以我决定将共享资源复制到每个项目中,但这不起作用。 共享代码无法导入其资源的副本,因为它不知道使用它的项目的包名称。 我一直在使用的解决方案是动态访问资源,但随着资源数量的增长,这变得很麻烦。 所以,我需要(1)或(2)的解决方案,否则我将不得不回到图书馆项目。 (或许我还有其他选择没想过?)

如何在没有内存exception的情况下从“onPictureTaken”旋转图片?

我在那里看过很多post? 但我找不到正确答案。 我试着这样做: @Override public void onPictureTaken(byte[] paramArrayOfByte, Camera paramCamera) { try { Bitmap bitmap = BitmapFactory.decodeByteArray(paramArrayOfByte, 0, paramArrayOfByte.length); int width = bitmap.getWidth(); int height = bitmap.getHeight(); FileOutputStream os = new ileOutputStream(Singleton.mPushFilePath); Matrix matrix = new Matrix(); matrix.postRotate(90); Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, false); resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 95, os); os.close(); … 有没有办法旋转图片,而不使用BitmapFactory? 我想要旋转图片而不会损失质量!

Android Location getTime()添加1天错误

我目前正在使用三星Galaxy Tab P1000,我遇到了一个我不确定的问题,如果发生在所有智能手机中。 同步GPS时,每次我得到location.getTime(); 它返回实际日期加1天。 我做错了什么或这是一个错误? 这是代码: @Override public void onLocationChanged(Location location) { setRealTime(location.getTime()); … data = new Date(); data.setTime(getRealTime()); } 然后例如,它今天是15/31 01/16它显示15:31 01/17 该问题仅限于三星Galaxy Tab P1000 …… 有任何想法吗?

如何制作默认的Android加载器animation?

我想制作一个Android“忙”animation,默认情况下图像相似。 喜欢这个:

如何在一个活动中在不同的video视图中播放多个video

示例代码: 如何在一个活动中播放这两个video public class Two_videos extends Activity { VideoView video1, video2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.two_video); VideoView video1= (VideoView) findViewById(R.id.video1); video1.setVideoPath(“/mnt/sdcard/Movies/com.bnb.giggle/IMG_20130415184609.mp4”); video1.start(); VideoView video2= (VideoView) findViewById(R.id.video2); video2.setVideoPath(“/mnt/sdcard/Movies/com.bnb.giggle/IMG_20130415184608.mp4”); video2.start(); } } 不能同时播放两个video。

减少.jar文件以减轻Android应用程序的负担

背景:在创建Android应用程序的过程中,我正在弄乱不同的散列技术和速度。 我使用Android本机的东西,直到我findSpongyCastle(即BouncyCastle),结果发现速度更快。 SpongyCastle .jar文件相当大,我的.apk超过800kb只有jar和几个测试类(以及所有必要的android fluff)。 问题第1点:.jar文件对于APK是否正常? 他们通常会臃肿文件吗? 问题第2题:我有没有办法(通过源或jar子)减少文件? 我只使用SHA256和SHA1哈希方案,我还没有弄清楚如何使用这两个哈希方案而不包括整个jar。 思考? 编辑: ProGuard创造奇迹。