eclipse安卓画图板(简单画条线)

Android 简单画图板界面(附有代码)
进行Android画图板实现,我们对比一下在Java界面中画图板所需要的内容
1.JFrame ———— ImageView
组件,显示画图的内容

2.BufferedImage ———— Bitmap
缓存,画图的位置

3.Graphics ————
画图形 Canvas
设置绘图样式 Paint(在安卓中,画图与前者略有不同,分为了两个部分)

4.MouseListener ———— OnTouchListener
监听器(鼠标监听————触摸监听)
接下来我们开始实现:
第一步:获取ImageView
ImageView showView =(ImageView)this.findViewById(R.id.showView);
第二步:在ImageView中添加监听器
第三步:触摸画图
第四步:将Bitmap显示在ImageView上
代码如下:
MainActivity

import android.os.Bundle;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.Toast;
import android.app.Activity;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //获取ImageView
        ImageView showView =(ImageView)this.findViewById(R.id.showView);
      //获取监听器 
        DrawListener dl = new DrawListener(this);
      //添加监听器
        showView.setOnTouchListener(dl);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }    
}

监听器 DrawListener

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.Toast;
public class DrawListener implements OnTouchListener {
	// Bitmap
	Bitmap bitmap;
	// Canvas
	Canvas canvas;
	// Paint
	Paint p = new Paint();
	// 获取坐标
	float x1, x2, y1, y2;
	public boolean onTouch(View v, MotionEvent event) {
		// 根据事件源获取界面宽高,创建Bitmap
		bitmap = Bitmap.createBitmap(v.getWidth(),v.getHeight(),Config.ARGB_8888);
		canvas = new Canvas(bitmap);
		p.setColor(Color.BLACK);
		// 获取事件信息
		int action = event.getAction();
		if (action == MotionEvent.ACTION_DOWN) {
			x1 = event.getX();
			y1 = event.getY();
		} else if (action == MotionEvent.ACTION_UP) {
			x2 = event.getX();
			y2 = event.getY();
			canvas.drawLine(x1, y1, x2, y2, p);
			// 显示
			ImageView showView = (ImageView) v;
			showView.setImageBitmap(bitmap);
		}
		return true;
	}
}

在xml文件中,我们仍需注意注意两点
1.ImageView宽度,高度应用match_parent
2.给ImageView一个id,并与MainActivity中一致

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/showView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        
        android:text="@string/hello_world" />

</RelativeLayout>

若有错误,欢迎指正留言!!!

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
你可以按照以下步骤在 Eclipse 中实现简单画图板: 1. 创建一个 Java 项目,并在其中创建一个类。 2. 在类中创建一个 JFrame 对象,并设置窗口的大小和标题。 ```java import javax.swing.JFrame; public class DrawingBoard extends JFrame { public DrawingBoard() { setTitle("画图板"); setSize(600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new DrawingBoard(); } } ``` 3. 在窗口中添加一个 JPanel 对象,并设置其背景色和布局方式。 ```java import java.awt.Color; import java.awt.FlowLayout; import javax.swing.JPanel; public class DrawingBoard extends JFrame { private JPanel canvas; public DrawingBoard() { setTitle("画图板"); setSize(600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); canvas = new JPanel(); canvas.setBackground(Color.WHITE); canvas.setLayout(new FlowLayout()); add(canvas); setVisible(true); } public static void main(String[] args) { new DrawingBoard(); } } ``` 4. 在 JPanel 对象中添加一个鼠标事件监听器,用于绘制图形。 ```java import java.awt.Color; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import javax.swing.JPanel; public class DrawingBoard extends JFrame { private JPanel canvas; private ArrayList<Point> points = new ArrayList<Point>(); public DrawingBoard() { setTitle("画图板"); setSize(600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); canvas = new JPanel() { public void paintComponent(Graphics g) { super.paintComponent(g); for (int i = 0; i < points.size() - 1; i++) { Point p1 = points.get(i); Point p2 = points.get(i + 1); g.drawLine(p1.x, p1.y, p2.x, p2.y); } } }; canvas.setBackground(Color.WHITE); canvas.setLayout(new FlowLayout()); canvas.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { points.add(e.getPoint()); } }); canvas.addMouseMotionListener(new MouseAdapter() { public void mouseDragged(MouseEvent e) { points.add(e.getPoint()); canvas.repaint(); } }); add(canvas); setVisible(true); } public static void main(String[] args) { new DrawingBoard(); } } ``` 这段代码添加了一个鼠标事件监听器,当用户按下鼠标时,记录当前的坐标点;当用户拖动鼠标时,记录鼠标移动的轨迹,并且每次绘制完成之后,使用 Graphics 对象绘制出当前的轨迹。 以上就是使用 Eclipse 实现简单画图板的基本步骤。在实际开发中,你可以根据自己的需求,添加更多的功能,比如画不同类型的图形、选择颜色和线条宽度等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北极,南极

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值