寸阳分阴须爱惜,休负春色与时光。这篇文章主要讲述移动ImageView(Android)[重复]相关的知识,希望能为你提供帮助。
这个问题在这里已有答案:
- findViewByID returns null 28回答
ImageView
时,我正试图测试设置GameView
的位置。每当我点击模拟器时,应用程序崩溃时都没有任何错误消息。同样的结果,当我尝试setX
/ setY
和setTop
/ setLeft
我无法弄清楚我在这里缺少什么。<
?xml version="1.0" encoding="utf-8"?>
<
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<
com.example.test.GameView
android:id="@+id/groupLayout"
android:layout_width="300dp"
android:layout_height="300dp">
<
ImageView
android:id="@+id/flagImage"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="https://www.songbingjia.com/android/@drawable/flag"
/>
<
/com.example.test.GameView>
<
/LinearLayout>
public class GameView extends LinearLayout {
private ImageView flagImage;
public GameView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
setBackgroundColor(Color.BLACK);
flagImage = findViewById(R.id.flagImage);
}@Override
public boolean onTouchEvent(MotionEvent event) {
LayoutParams par = (LayoutParams)flagImage.getLayoutParams();
par.leftMargin += 30;
flagImage.setLayoutParams(par);
return super.onTouchEvent(event);
}
}
答案我认为你应该在GameView类中设置更多的构造函数。
public class GameView extends LinearLayout {
private ImageView flagImage;
public GameView(Context context) {
super(context);
setBackgroundColor(Color.BLACK);
flagImage = findViewById(R.id.flagImage);
}
public GameView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
setBackgroundColor(Color.BLACK);
flagImage = findViewById(R.id.flagImage);
}
public GameView(Context context, @Nullable AttributeSet attrs,@AttrRes int
defStyleAttr) {
super(context, attrs,defStyleAttr);
setBackgroundColor(Color.BLACK);
flagImage = findViewById(R.id.flagImage);
}@Override
public boolean onTouchEvent(MotionEvent event) {
LayoutParams par = (LayoutParams)flagImage.getLayoutParams();
par.leftMargin += 30;
flagImage.setLayoutParams(par);
return super.onTouchEvent(event);
}}
【移动ImageView(Android)[重复]】你可以将它的默认构造函数添加到类中。如果这不起作用,那么@ me。
推荐阅读
- 如何在android中使用SwipeRefreshLayout和imageView进入NestedScrollView
- 带有setAdjustViewBounds的Android ImageView在ConstraintLayout中具有无法解释的行为
- 在android [copy]中没有设置从相机到imageview的图像
- 5+ Web项目的最佳免费jQuery和JavaScript动态甘特图
- 最佳5(最佳图像颜色提取JavaScript和jQuery插件)
- 15个最佳高级工作门户HTML模板
- 十大基于AngularJS Bootstrap的最佳高级管理模板
- 10+最佳高级ReactJS管理模板
- 十大最佳高级简历和履历式Bootstrap模板