写一个activity,实现:1.使用Android的图形处理的基本操作技能 a)绘制图片500×500,左空隙10dp,在图片底部添上文字“Hello Android” b)绘制点(10,550),(800,1000),点宽50,颜色为黄色; c)绘制绿色线(10,550)到(800,1000),线宽10;红色多线(10,550)到(10,1000), (10,1000)到(800,1000) ,(800,1000)到(800,550) ,(800,550)到(10,550) d)绘制矩形,填充色CYAN, (10, 1050, 350, 1500)

时间: 2024-02-13 16:07:35 浏览: 25
好的,以下是一个简单的Activity代码,实现了你提到的图形处理的基本操作技能: ``` import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Point; import android.graphics.Rect; import android.graphics.RectF; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; public class DrawActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new DrawView(this)); } private static class DrawView extends View { private Paint mPaint; public DrawView(DrawActivity context) { super(context); mPaint = new Paint(); mPaint.setColor(Color.YELLOW); mPaint.setStrokeWidth(50); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 绘制图片 mPaint.setColor(Color.BLACK); mPaint.setTextSize(30); canvas.drawText("Hello Android", 10, 510, mPaint); canvas.drawBitmap(null, 10, 10, mPaint); // 绘制点 mPaint.setColor(Color.YELLOW); canvas.drawPoint(10, 550, mPaint); canvas.drawPoint(800, 1000, mPaint); // 绘制绿色线 mPaint.setColor(Color.GREEN); mPaint.setStrokeWidth(10); canvas.drawLine(10, 550, 800, 1000, mPaint); // 绘制红色多线 mPaint.setColor(Color.RED); mPaint.setStrokeWidth(5); Path path = new Path(); path.moveTo(10, 550); path.lineTo(10, 1000); path.lineTo(800, 1000); path.lineTo(800, 550); path.close(); canvas.drawPath(path, mPaint); // 绘制矩形 mPaint.setColor(Color.CYAN); Rect rect = new Rect(10, 1050, 350, 1500); canvas.drawRect(rect, mPaint); } } } ``` 在Activity中,我们创建了一个自定义的View(DrawView),然后在onDraw方法中使用Canvas和Paint类来实现各种图形的绘制。注意,这里的绘制操作是在UI线程中进行的,因此对于比较复杂或者需要频繁刷新的图形,最好在单独的线程中进行绘制,以避免UI线程阻塞。

相关推荐

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.a2, PID: 18827 android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.a2/com.example.a2.jisuanqi}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2049) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1709) at android.app.Activity.startActivityForResult(Activity.java:5192) at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:597) at android.app.Activity.startActivityForResult(Activity.java:5150) at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:583) at android.app.Activity.startActivity(Activity.java:5521) at android.app.Activity.startActivity(Activity.java:5489) at com.example.a2.MainActivity$1.onClick(MainActivity.java:37) at android.view.View.performClick(View.java:7125) at android.view.View.performClickInternal(View.java:7102) at android.view.View.access$3500(View.java:801) at android.view.View$PerformClick.run(View.java:27336) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

最新推荐

recommend-type

Android 出现:java.lang.NoClassDefFoundError...错误解决办法

主要介绍了Android 出现:Android出现:java.lang.NoClassDefFoundError: android/os/PersistableBundle错误解决办法的相关资料,需要的朋友可以参考下
recommend-type

Android编程实现两个Activity相互切换而不使用onCreate()的方法

主要介绍了Android编程实现两个Activity相互切换而不使用onCreate()的方法,结合实例形式分析了多个Activity切换而不重新创建的操作技巧,需要的朋友可以参考下
recommend-type

AndroidX下使用Activity和Fragment的变化详解

主要介绍了AndroidX下使用Activity和Fragment的变化详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

Android实现将一个Activity设置成窗口样式的方法

主要介绍了Android实现将一个Activity设置成窗口样式的方法,涉及Android的窗口样式设置与布局技巧,具有一定参考借鉴价值,需要的朋友可以参考下
recommend-type

Android 实现两个Activity跳转实例

本文主要介绍Android 多个Activity相互之间的跳转,认识Activity生命周期,在做Android编程的时候用处很大,希望能帮助有需要的小伙伴
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

hive中 的Metastore

Hive中的Metastore是一个关键的组件,它用于存储和管理Hive中的元数据。这些元数据包括表名、列名、表的数据类型、分区信息、表的存储位置等信息。Hive的查询和分析都需要Metastore来管理和访问这些元数据。 Metastore可以使用不同的后端存储来存储元数据,例如MySQL、PostgreSQL、Oracle等关系型数据库,或者Hadoop分布式文件系统中的HDFS。Metastore还提供了API,使得开发人员可以通过编程方式访问元数据。 Metastore的另一个重要功能是跟踪表的版本和历史。当用户对表进行更改时,Metastore会记录这些更改,并且可以让用户回滚到
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。