小编mol*_*mol的帖子

BitmapFactory.decodeResource()为xml drawable中定义的形状返回null

我查看了多个类似的问题,虽然我的查询没有找到正确的答案.

我有一个drawable,在shape.xml中定义

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

    <solid android:color="@color/bg_color" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我想将其转换为Bitmap对象以执行某些操作,但BitmapFactory.decodeResource()返回null.

这就是我这样做的方式:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.shape);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?是BitmapFactory.decodeResource()适用于XML定义可绘制?

android xml-drawable android-drawable

37
推荐指数
2
解决办法
2万
查看次数

将android.media.Image(YUV_420_888)转换为Bitmap

我正在尝试使用这里提出的camera2 api实现相机预览图像数据处理:使用Android L和Camera2 API进行相机预览图像数据处理.

我使用onImageAvailableListener成功接收回调,但是为了将来的处理,我需要从YUV_420_888 android.media.Image获取位图.我搜索了类似的问题,但没有一个帮助.

你能否建议我如何将android.media.Image(YUV_420_888)转换为Bitmap,或者有更好的方法来监听预览帧?

android bitmap yuv android-camera

13
推荐指数
3
解决办法
1万
查看次数

获取事件触发的元素的值

可能重复:
选择内部文本(jQuery)

我有一个跨度:

<span class="test"> target_string </span>
Run Code Online (Sandbox Code Playgroud)

这个事件是在点击页面的任何元素时触发的.

$('body').click(function(event){
  if ($(event.target).attr('class') == 'test'){
    alert(???);
  }
}
Run Code Online (Sandbox Code Playgroud)

如何获取target_string值?

html javascript jquery

12
推荐指数
1
解决办法
4万
查看次数

Android studio 3.0 Canary NPE更新后

我将Android Studio Canary从2更新为3(当前版本),现在我在构建项目时遇到错误:

2017-06-15 16:32:00,831 [ thread 12]   INFO - e.project.sync.GradleSyncState - Gradle sync failed: Cause: java.lang.NullPointerException
at com.android.build.gradle.internal.ide.AndroidArtifactOutputImpl.getGeneratedManifest(AndroidArtifactOutputImpl.java:110)
at sun.reflect.GeneratedMethodAccessor283.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$ReflectionMethodInvoker.invoke(ProtocolToModelAdapter.java:592)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$AdaptingMethodInvoker.invoke(ProtocolToModelAdapter.java:397)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$PropertyCachingMethodInvoker.invoke(ProtocolToModelAdapter.java:625)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$SafeMethodInvoker.invoke(ProtocolToModelAdapter.java:647)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$SupportedPropertyInvoker.invoke(ProtocolToModelAdapter.java:670)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$InvocationHandlerImpl.invoke(ProtocolToModelAdapter.java:356)
at com.sun.proxy.$Proxy198.getGeneratedManifest(Unknown Source)
at com.android.tools.idea.gradle.project.model.ide.android.IdeAndroidArtifactOutput.<init>(IdeAndroidArtifactOutput.java:49)
at com.android.tools.idea.gradle.project.model.ide.android.IdeAndroidArtifactImpl.lambda$new$0(IdeAndroidArtifactImpl.java:48)
at com.android.tools.idea.gradle.project.model.ide.android.ModelCache.lambda$computeIfAbsent$0(ModelCache.java:31)
at java.util.HashMap.computeIfAbsent(HashMap.java:1126)
at com.android.tools.idea.gradle.project.model.ide.android.ModelCache.computeIfAbsent(ModelCache.java:31)
at com.android.tools.idea.gradle.project.model.ide.android.IdeModel.copy(IdeModel.java:71)
at com.android.tools.idea.gradle.project.model.ide.android.IdeAndroidArtifactImpl.<init>(IdeAndroidArtifactImpl.java:48)
at com.android.tools.idea.gradle.project.model.ide.android.IdeVariantImpl.lambda$new$0(IdeVariantImpl.java:51)
at com.android.tools.idea.gradle.project.model.ide.android.ModelCache.lambda$computeIfAbsent$0(ModelCache.java:31)
at java.util.HashMap.computeIfAbsent(HashMap.java:1126)
at com.android.tools.idea.gradle.project.model.ide.android.ModelCache.computeIfAbsent(ModelCache.java:31)
at com.android.tools.idea.gradle.project.model.ide.android.IdeVariantImpl.<init>(IdeVariantImpl.java:50)
at com.android.tools.idea.gradle.project.model.ide.android.IdeAndroidProjectImpl.lambda$new$4(IdeAndroidProjectImpl.java:80)
at com.android.tools.idea.gradle.project.model.ide.android.ModelCache.lambda$computeIfAbsent$0(ModelCache.java:31)
at java.util.HashMap.computeIfAbsent(HashMap.java:1126)
at com.android.tools.idea.gradle.project.model.ide.android.ModelCache.computeIfAbsent(ModelCache.java:31)
at com.android.tools.idea.gradle.project.model.ide.android.IdeModel.copy(IdeModel.java:71)
at com.android.tools.idea.gradle.project.model.ide.android.IdeAndroidProjectImpl.<init>(IdeAndroidProjectImpl.java:80)
at …
Run Code Online (Sandbox Code Playgroud)

development-environment android-studio android-gradle-plugin android-studio-3.0

11
推荐指数
2
解决办法
1382
查看次数

在kotlin中扩展lambdas是否合适?

我在kotlin编程方面比较新,最近我发现这是一个有效的陈述:

class Test : (Int) -> String {
    override fun invoke(p1: Int): String {
        return p1.toString()
    }
}
Run Code Online (Sandbox Code Playgroud)

当我看到它时,我感觉扩展Lambdas可能不是一个很好的编程实践,但是我没有任何客观的理由这么认为.我没有找到关于这个问题的任何文档,所以你能告诉我们扩展lambdas是好还是坏.

lambda kotlin

7
推荐指数
1
解决办法
361
查看次数

将外部jar添加到android项目中

我有以下问题:

我有两个项目:jre1.7和android 2.1.我想首先构建一个jar文件,并在第二个项目中将其用作框架.我正在使用eclipse,当我添加外部jar时,我已经做了我通常做的事情.(右键单击项目 - 构建路径 - 添加外部Jars),似乎一切都很好,有Referenced库文件夹出现,它包含jar.

但是当我尝试编译Android项目时,它会给出NoClassDefFound错误.难道我做错了什么?

java android jar classpath

3
推荐指数
1
解决办法
1万
查看次数

通过 MultipartEntity 发送 Unicode 字符

我有一种使用 MultipartEntity 内容类型将图像和文本作为 HttpPost 发送的方法。一切都适用于英文符号,但对于 unicode 符号(例如 Cyrliics),它只发送 ???。所以,我想知道如何正确地为 MultipartEntity 设置 UTF-8 编码,因为我已经尝试了几个 sulutions,建议在 SO 上,但没有一个工作。这是我已经拥有的:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);

MultipartEntityBuilder mpEntity = MultipartEntityBuilder.create();
mpEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
mpEntity.setCharset(Consts.UTF_8);

mpEntity.addPart("image", new FileBody(new File(attachmentUri), ContentType.APPLICATION_OCTET_STREAM));


ContentType contentType = ContentType.create(HTTP.PLAIN_TEXT_TYPE, HTTP.UTF_8);
StringBody stringBody = new StringBody(mMessage, contentType);
mpEntity.addPart("message", stringBody);

final HttpEntity fileBody = mpEntity.build();
httpPost.setEntity(fileBody);  

HttpResponse httpResponse = httpclient.execute(httpPost);
Run Code Online (Sandbox Code Playgroud)

UPD 我尝试按照@Donaudampfschifffreizeitfahrt 的建议使用 InputStream。现在我得到了???人物。

 InputStream stream = new ByteArrayInputStream(mMessage.getBytes(Charset.forName("UTF-8")));
 mpEntity.addBinaryBody("message", stream);
Run Code Online (Sandbox Code Playgroud)

还试过:

mpEntity.addBinaryBody("message", mMessage.getBytes(Charset.forName("UTF-8")));
Run Code Online (Sandbox Code Playgroud)

apache android http multipartform-data utf-8

2
推荐指数
1
解决办法
2697
查看次数

带有矢量绘图的 TransitionDrawable

TransitionDrawable在xml中定义如下:

转换.xml

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_disabled" />
    <item android:drawable="@drawable/ic_enabled" />
</transition>
Run Code Online (Sandbox Code Playgroud)

我用它来动画复选框的状态变化:

val stateDrawable = ContextCompat.getDrawable(this, R.drawable.transition) as TransitionDrawable
checkbox.buttonDrawable = stateDrawable
checkbox.setOnCheckedChangeListener { icon, checked -> 
    if (checked) {
        stateDrawable.startTransition(300) 
    } else {
        stateDrawable.reverseTransition(300)
    }
}
Run Code Online (Sandbox Code Playgroud)

如果@drawable/ic_disabled@drawable/ic_enabledpng文件,则一切正常。但如果它们是矢量绘图,则过渡不起作用。我缺少什么?不TransitionDrawable支持矢量绘图?

android android-animation android-vectordrawable

2
推荐指数
1
解决办法
1696
查看次数