Android 是否在视图中添加ImageView?

Android 是否在视图中添加ImageView?,android,view,imageview,Android,View,Imageview,我想动态地或从xml向扩展视图的类中添加ImageView。。。。。 求救 这是我的代码…但它没有显示任何图像。。。 头等舱 public class Draw extends Activity { DrawView drawView; ImageView imageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan

我想动态地或从xml向扩展视图的类中添加ImageView。。。。。 求救 这是我的代码…但它没有显示任何图像。。。 头等舱

public class Draw extends Activity {
    DrawView drawView;
    ImageView imageView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
               drawView = new DrawView(this, null);
         setContentView(drawView);

    }
}
二等舱

public class DrawView extends View implements OnTouchListener {
    Path path;
    Paint paint = new Paint();
    private ShapeDrawable mDrawable;
    ImageView imageView;
 // image img=new image();

    private ArrayList<Path> graphics = new ArrayList<Path>();

    public DrawView(Context context,AttributeSet attrs) {
        super(context,attrs);

        setFocusable(true);
        setFocusableInTouchMode(true);
        this.setOnTouchListener(this);
        paint.setDither(true);
        paint.setColor(0xFFFFFF00);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.ROUND);
        paint.setStrokeCap(Paint.Cap.ROUND);
        paint.setStrokeWidth(3);
        ImageView iv = (ImageView)findViewById(R.id.image_id); /* Load your ImageView 
        based on your id from your XML file */
        iv.setImageDrawable(
        this.getResources().getDrawable(R.drawable.yourimageinyourdrawablefolder)
        );

      //  img.showImage(); 

    }

    @Override
    public void onDraw(Canvas canvas) {
        System.out.println("onDraw"+graphics);
        for (Path path : graphics) {
            //canvas.drawPoint(graphic.x, graphic.y, mPaint);
            canvas.drawPath(path, paint);
        }
    }public boolean onTouch(View view, MotionEvent event) {
        // if(event.getAction() != MotionEvent.ACTION_DOWN)
        // return super.onTouchEvent(event);

        if(event.getAction() == MotionEvent.ACTION_DOWN){
            path = new Path();
            System.out.println("ACTION_DOWN");
            path.moveTo(event.getX(), event.getY());
            path.lineTo(event.getX(), event.getY());
            }
        else if(event.getAction() == MotionEvent.ACTION_MOVE){
            path.lineTo(event.getX(), event.getY());
            graphics.add(path);
             System.out.println("ACTION_MOVE");
            path = new Path();
            path.moveTo(event.getX(), event.getY());
            }else if(event.getAction() == MotionEvent.ACTION_UP){
            path.lineTo(event.getX(), event.getY());
            graphics.add(path);

            }

       invalidate();

        return true;
    }
}
公共类DrawView扩展视图实现OnTouchListener{
路径;
油漆=新油漆();
私有形状可移动可绘制;
图像视图图像视图;
//图像img=新图像();
私有ArrayList graphics=新建ArrayList();
公共绘图视图(上下文、属性集属性){
超级(上下文,attrs);
设置聚焦(真);
setFocusableInTouchMode(真);
this.setOnTouchListener(this);
绘制。设置抖动(真);
paint.setColor(0xFFFFFF00);
绘制.设置样式(绘制.样式.笔划);
绘制.设置行程连接(绘制.连接.圆形);
油漆固定行程盖(油漆固定行程盖圆形);
油漆。设置行程宽度(3);
ImageView iv=(ImageView)findViewById(R.id.image_id);/*加载您的ImageView
基于XML文件中的id*/
iv.可设定图像绘制(
this.getResources().getDrawable(R.drawable.YourImageInYourDrawable文件夹)
);
//img.showImage();
}
@凌驾
公共空白onDraw(画布){
System.out.println(“onDraw”+图形);
用于(路径:图形){
//画布绘制点(graphic.x、graphic.y、mPaint);
画布.绘制路径(路径,绘制);
}
}公共布尔onTouch(视图、运动事件){
//if(event.getAction()!=MotionEvent.ACTION\u向下)
//返回super.onTouchEvent(事件);
if(event.getAction()==MotionEvent.ACTION\u向下){
路径=新路径();
System.out.println(“动作向下”);
moveTo(event.getX(),event.getY());
lineTo(event.getX(),event.getY());
}
else if(event.getAction()==MotionEvent.ACTION\u MOVE){
lineTo(event.getX(),event.getY());
添加(路径);
System.out.println(“动作”);
路径=新路径();
moveTo(event.getX(),event.getY());
}else if(event.getAction()==MotionEvent.ACTION\u UP){
lineTo(event.getX(),event.getY());
添加(路径);
}
使无效();
返回true;
}
}
xml



我正在尝试上面的代码,它在模拟器中崩溃了。是否有语法错误或我犯了什么错误。请提供帮助。

很抱歉,我们无法给您一个好的答案,但是您的问题和代码看起来很混乱,您可能需要多读一点,并完成一些简单的教程。您目前不想扩展任何视图类,必须将imageview添加到屏幕上显示的某种布局中。看一看,您也不需要加载可绘制的,只需向imageview提供一个可绘制的资源。Janusz是正确的,您不需要加载imageview本身,只需在XML文件中添加一个资源就足够了,如我下面所述。您可以编辑自己的问题,您知道。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/main" 
    >

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image_id"
  />
</LinearLayout >