当前位置: 首页 > 知识库问答 >
问题:

向现有相对视图添加可拖动图像视图

长孙修远
2023-03-14

目前我有下面的代码。它将imageview添加到现有的背景中。然而,在图像创建后,当我试图拖动它时,程序崩溃了...有人知道为什么它不起作用吗?

ballbutton.setOnClickListener (new View.OnClickListener(){
        @Override
        public void onClick(View view){
            ImageView iv = new ImageView(getApplicationContext());
            iv.setImageDrawable(getDrawable(R.drawable.ball));
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            lp.addRule(RelativeLayout.RIGHT_OF, R.id.resistorbutton);
            iv.setLayoutParams(lp);
            iv.setOnTouchListener(new myListener());
            relativeLayout.addView(iv);
        }
    });

日志如下:

------崩溃开始

E/AndroidRuntime:致命异常:main process:com.example.dan.ball,pid:2795 java.lang.nullpointerException:在Android.view.view.dispatchTouchEvent(view.java.dispatchTouchEvent(view.java.java:2197)和Android.view.viewgroup.dispatchTransformedTouchEvent(viewgroup.dispatchTransformedTouchEvent(viewgroup.java:2197)上尝试调用虚拟方法“void在Android.view.viewgroup.dispatchTouchEvent(viewgroup.java:2197)在Android.view.viewgroup.dispatchTransformedTouchEvent(viewgroup.java:2553)在Android.view.viewgroup.dispatchTouchEvent(viewgroup.java:2197)在Android.view.viewgroup.dispatchTouchEvent(viewgroup.java:2197)在Android.view.viewgroup.dispatchTouchEvent(Indow.java:2403)在com.android.internal.policy.phoneWindow.superdispatchTouchEvent(phoneWindow.java:1737)在Android.app.activity.dispatchTouchEvent(activity.java:2765)在com.android.internal.policy.phoneWindow$decoview.dispatchTouchEvent(phoneWindow.java:2364),在Android.view.view.dispatchTouchEvent(phoneWindow.java:9514)在.java:4096)在Android.view.viewrootimpl$inputstage.deliver(Viewrootimpl.java:3642),Android.view.viewrootimpl.inputstage.ondelivertonext(Viewrootimpl.java:3695),Android.view.viewrootimpl.java:3661)在Android.view.viewrootimpl.java:3681)在Android.view.viewrootimpl.asyncinputstage.forward(viewrootimpl.java:3787),在timpl.java:3844)位于Android.view.viewrootimpl$inputstage.deliver(Viewrootimpl.java:3642),在Android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3695),在Android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3661),在Android.view.viewrootimpl.java:3661),在Android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:3669),在Android.view.viewrootimpl.java:3642),在pl.java:5896)在Android.view.viewrootimpl.enqueueInputEvent(viewrootimpl.java:5857)在Android.view.viewrootimpl.$windowInputEventReceiver.onInputEvent(viewrootimpl.java:6025)在Android.view.inputEventReceiver.dispatchinputEvent(viewrootimpl.java:185)在Android.os.messageQueue.java:185)在Android.os.messageQueue.Native Method(原生read.java:5417)位于com.android.internal.os.zy的java.lang.reflect.Method.invoke(本机方法)goteinit$methodandargscaller.run(zygoteinit.java:726)在com.android.internal.os.zygoteinit.main(zygoteinit.java:616)

共有1个答案

林浩漫
2023-03-14

好吧,所以我自己设法解决了这个。在我的myListener类中,我使用invalidate()重新绘制我不需要的视图。

 类似资料:
  • 我试图拖动对象表示为PNG图像透明背景从AnchorPane到HBox。 我使用以下线条将图像设置为拖动视图: 对于不透明的背景图像,这一切都很好,但对于透明的图像,图像的背景是白色的,不透明度为“0.8”。 我尝试为节点拍摄快照: 但它不起作用,白色背景仍然存在。有没有其他方法可以让它像原始图像一样透明?

  • 若要添加一个新的视图,点击工具栏的 按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的视图,简单地从模型选项卡拖放视图到画布。 【注意】如果你右击视图连接器,你可以选择添加或删除顶点,以及更改它的颜色,或者前往源视图和目标表。 在画布中视图对象的弹出式菜单选项包括: 选项 描述 设计视图 在视图设计器中编辑视图结构。设计器内的选项卡和选项是根据你所选择的图表数据库类型而有所不同。

  • 若要添加一个新的视图,点击工具栏的 按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的视图,简单地从模型选项卡拖放视图到画布。 【注意】如果你按住 Control 键并点按视图连接器,你可以选择添加或删除顶点,以及更改它的颜色,或者前往源视图和目标表。 在画布中视图对象的弹出式菜单选项包括: 选项 描述 设计视图 在视图设计器中编辑视图结构。设计器内的选项卡和选项是根据你所选择的

  • 若要添加一个新的视图,点击工具栏的 按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的视图,简单地从模型选项卡拖放视图到画布。 【注意】如果你右击视图连接器,你可以选择添加或删除顶点,以及更改它的颜色,或者前往源视图和目标表。 在画布中视图对象的弹出式菜单选项包括: 选项 描述 设计视图 在视图设计器中编辑视图结构。设计器内的选项卡和选项是根据你所选择的图表数据库类型而有所不同。

  • 英文原文:http://emberjs.com/guides/views/adding-layouts-to-views/ 视图可以拥有一个次模板来包裹其主模板。如同模板一样,布局是可以插入到视图标签下的Handlebars模板。 通过设置layoutName属性来配置视图的布局模板。 而布局模板通过Handlebars的{{yield}}助手来指定在哪里插入主模板。视图渲染后的template的

  • 好吧,我有gridview,它从服务器中提取图像