- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的这个应用程序有点问题!这段代码:
package com.project.alpha_droid;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
Bitmap img;
ImageView imagew;
void fill(int x, int y, int c){
if(img.getPixel(x,y)!=c){
img.setPixel(x,y,c);
if(img.getPixel(x+1,y)!=c){
fill(x+1,y,c);
}
if(img.getPixel(x,y+1)!=c){
fill(x,y+1,c);
}
if(img.getPixel(x-1,y)!=c){
fill(x-1,y,c);
}
if(img.getPixel(x,y-1)!=c){
fill(x,y-1,c);
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imagew = (ImageView) findViewById(R.id.drawing);
imagew.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("Location", event.getX() + "x" + event.getY());
img = ((BitmapDrawable)imagew.getDrawable()).getBitmap();
fill(Math.round(event.getX()),Math.round(event.getY()), 0);
imagew.setImageBitmap(img);
return true;
}
});
}
}
引发以下错误:
09-24 12:15:09.981 12764-12764/com.project.alpha_droid E/InputEventReceiver: Exception dispatching input event.
09-24 12:15:09.981 12764-12764/com.project.alpha_droid E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
09-24 12:15:09.981 12764-12764/com.project.alpha_droid E/MessageQueue-JNI: java.lang.IllegalStateException
at android.graphics.Bitmap.setPixel(Bitmap.java:1746)
at com.project.alpha_droid.MainActivity.fill(MainActivity.java:19)
at com.project.alpha_droid.MainActivity$1.onTouch(MainActivity.java:47)
at android.view.View.dispatchTouchEvent(View.java:9181)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2691)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2308)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2691)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2308)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2691)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2308)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2691)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2308)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2691)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2308)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2691)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2308)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2743)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1836)
at android.app.Activity.dispatchTouchEvent(Activity.java:3043)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:63)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2704)
at android.view.View.dispatchPointerEvent(View.java:9397)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5082)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4899)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4356)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4409)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4375)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4501)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4383)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4558)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4356)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4409)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4375)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4383)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4356)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6979)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6852)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6823)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7069)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:143)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:6934)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
填充函数应该充当油漆桶,您可以在其中用颜色填充您点击的空间。
最佳答案
您可以尝试将 Bitmap
复制到另一个可变位图。
final Bitmap oldBitmap = ((BitmapDrawable) imagew.getDrawable()).getBitmap();
//set the second param of copy to true so we get a **mutable** bitmap
img = oldBitmap.copy(oldBitmap.getConfig, true);
//recycle old. We don't need it anymore
//oldBitmap.getBitmap().recycle()
fill(Math.round(event.getX()),Math.round(event.getY()), 0);
imagew.setImageBitmap(img);
关于java - Android:为什么会抛出 java.lang.IllegalStateException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39675334/
在 Tomcat 6/Ubuntu 12.04 上启动 Grails 2.1.0 应用程序时出现以下错误。 Error 500 - Internal Server Error. groovy.lang
在运行 Storm 拓扑时,我收到此错误。拓扑完美运行 5 分钟,没有任何错误,然后失败。我正在使用 Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS as 300 sec i
我有一个 jsp 代码在其中一台机器上运行良好。但是当我复制到另一台机器时,我得到了这个 no such method found 异常。我是 Spring 的新手。有人可以解释我错过了什么吗? 以下
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我的代码在下面给出了一个错误; Exception in thread "main" java.lang.NoSuchMethodError: com/myApp/Client.cypherCBC(L
我正在尝试一个 Restful web 服务示例,所以当我要访问 url 时,我遇到了异常 java.lang.NoSuchMethodError: jersey.repackaged.com.goo
我正在将一个 Spring web 项目转换为一个 Maven 项目,但我收到了这个错误: java.lang.NoSuchMethodError: org.jboss.logging.Logger.
在我的项目中,我有一个像这样的枚举: public enum MyEnum { FIRST(1), SECOND(2); private int value; private MyEnum(int v
我创建了这个简单的示例,用于读取 Linux 正常运行时间: public String getMachineUptime() throws IOException { String[] di
我正在使用 Eclipse,并且正在使用 Java。我的目标是使用 bogoSort 方法对 vector 进行排序在一个 vector (vectorExample)中适应我的 vector 类型,
我正在运行以下查询。它显示一条错误消息。如何解决这个错误? ListrouteList=null; List companyList = session.createS
我有以下模型类: @Entity @Table(name="user_content") @org.hibernate.annotations.NamedQueries({ @org.
我有那个错误。这是我的代码: GmailSettingsService service = new GmailSettingsService(APPLICATION_NAME, DOMAIN_NAME
实际上我在执行我的java程序时遇到了下面提到的错误 Exception in thread "pool-1-thread-1" java.lang.ClassCastException: jav
java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.String 我在以下代码中遇到此异常: Strin
我正在尝试从 linkedhashset 中检索随机元素。下面是我的代码,但它每次都给我异常。 private static void generateRandomUserId(Set userIds
我已经完成了 Android 中的代码: List spinnerArray = new ArrayList(); for (int i = 0; i item = (LinkedTreeMap)
这个问题已经有答案了: Explanation of ClassCastException in Java (12 个回答) 已关闭 6 年前。 我已经编写了 java 到 Json 的代码,同时从页
这个问题在这里已经有了答案: ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn (4 个答案) 关闭 6 年前
我在运行时遇到问题来编译这段代码,这给我一个错误,java.lang.Integer 无法转换为 Java.lang.Double。如果有人帮助我更正此代码,我将非常高兴 double x; pu
我是一名优秀的程序员,十分优秀!