我有一张来自网络的图片ImageView.它非常小(一个favicon),我想将它存储在我的SQLite数据库中.我可以得到一个Drawable,mImageView.getDrawable()但后来我不知道该怎么做.我不完全理解DrawableAndroid中的类.
我知道我可以从Bitmap类似的方式获得一个字节数组:
Bitmap defaultIcon = BitmapFactory.decodeStream(in);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitmapdata = stream.toByteArray();
Run Code Online (Sandbox Code Playgroud)
但是如何从一个字节数组中获取Drawable?
我正在使用API演示中的MediaScannerConnection示例代码
我正在使用的片段是:
MediaScannerConnection.scanFile(
context,
new String[] { permFile.getAbsolutePath() },
null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
android.util.Log.i("ExternalStorage", "Scanned " + path + ":");
android.util.Log.i("ExternalStorage", "-> uri=" + uri);
}
});
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我从LogCat获得一个带有以下内容的FC对话框:
4-20 23:17:45.988: ERROR/ActivityThread(3015): Activity com.my.package.name has leaked ServiceConnection android.media.MediaScannerConnection@40715c70 that was originally bound here
04-20 23:17:45.988: ERROR/ActivityThread(3015): android.app.ServiceConnectionLeaked: Activity com.my.package.name has leaked ServiceConnection android.media.MediaScannerConnection@40715c70 that was originally bound here
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?仅供我使用AsyncTask从后台线程运行此功能.
我正在考虑使用隐藏的api在我的应用程序中关闭屏幕.
setScreenState来自https://android.googlesource.com/platform/frameworks/base/+/eclair-release/core/java/android/os/Power.java做我想要的,但它是一个隐藏的API.这是否意味着我不应该使用它?我认为它是一个相当稳定的API.
目前,我将屏幕超时设置为1毫秒,然后在屏幕关闭后重置超时.然而,android忽略1毫秒,而关闭它需要大约3秒,有时它完全忽略它并且不会关闭.
有什么建议?
我没有Dock,但我正在编写Dock替换应用程序.我能以某种方式模拟时钟码头吗?我知道我可以用于停靠码头,但那不是我要替换的码头.
我能以某种方式通过ADB将我的设备翻转到桌面模式吗?也许有类似的东西?ADB shell sendevent XXX
谢谢