Android 是否在视图中添加ImageView?
我想动态地或从xml向扩展视图的类中添加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
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 >