android canvas drawrect画图,为什么在android中调用canvas.drawRect时只绘制一个矩形?
我正在尝试使用foreach循环为ArrayList中的每个字符串绘制一个矩形,但它似乎只绘制了最后一个矩形。
我看过类似的问题,但他们遇到的问题包括矩形底部高于顶部并调用drawPaint - 但我没有这些问题。
MainActivity.java
public class MainActivity extends AppCompatActivity {
ArrayList ideas = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set the icon
ActionBar actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.drawable.actionbarfull);
//Use API in future to GET all ideas
ideas.add("Idea 1");
ideas.add("Idea 2");
ideas.add("Idea 3");
setContentView(new IdeaRectangle(this, ideas));
}
}
IdeaRectangle.java
public class IdeaRectangle extends View {
Rect rectangle = new Rect();
Paint mBlue = new Paint();
Paint textPaint = new Paint();
ArrayList ideasToDraw = new ArrayList<>();
int gap = 50;
int sidegap = 30;
int right = 0;
int height = 250;
int top = 0;
int bottom = 0;
int counter = 0;
public IdeaRectangle(Context context) {
super(context);
}
public IdeaRectangle(Context context, ArrayList ideas) {
super(context);
ideasToDraw = ideas;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Setting colour of rectangle and text
mBlue.setARGB(255, 0, 183, 255);
textPaint.setTextSize(50);
textPaint.setARGB(255, 0, 0, 0);
ArrayList rectangles = drawIdea(canvas, ideasToDraw);
for (Rect rectangle : rectangles) {
// Draw rectangle
canvas.drawRect(rectangle, mBlue);
canvas.drawText("This is an idea. There were " + rectangles.size() + " rectangles.", rectangle.left, rectangle.centerY(), textPaint);
}
}
private ArrayList drawIdea(Canvas canvas, ArrayList ideas) {
ArrayList rectangles = new ArrayList<>();
right = canvas.getWidth() - sidegap;
for (String idea : ideas) {
// Setting location of rectangle
top = gap + (counter * (gap + height));
bottom = top + height;
counter++;
System.out.println(sidegap + "," + top + "," + right + "," + bottom);
rectangle.set(sidegap, top, right, bottom);
rectangles.add(rectangle);
}
return rectangles;
}
打印出矩形尺寸的控制台日志打印出来:
04-23 12:47:44.920 11005-11005/? I/System.out: 30,50,1050,300
04-23 12:47:44.920 11005-11005/? I/System.out: 30,350,1050,600
04-23 12:47:44.920 11005-11005/? I/System.out: 30,650,1050,900
android canvas drawrect画图,为什么在android中调用canvas.drawRect时只绘制一个矩形?相关推荐
- 在canvas(画布)上绘制一个矩形盒子并使用按键移动这个盒子
思路 1.在画布上创建一个2d画笔,并用这个画笔在画布上绘制一个矩形. 2.设置一个边界判断使这个盒子不能移出画布之外,只能在画布中移动. 注意: 不能直接在style中设置canvas的大小 直接设 ...
- C#中调用Windows API时的数据类型对应关系
C#中调用Windows API时的数据类型对应关系 原文 C#中调用Windows API时的数据类型对应关系 BOOL=System.Int32 BOOLEAN=System.Int32 BYTE ...
- 『飞秋』在.NET 4中调用GDAL库时遇到的问题及解决方法
『飞秋』在.NET 4中调用GDAL库时遇到的问题及解决方法 最近需要在.NET 4的环境中调用GDAL库.GDAL本身是一套非托管类库,不过还好提供了用SWIG做的托管的Wrapper. 可以在FW ...
- html页面画一个矩形,使用HTML5 canvas绘制一个矩形的方法
使用HTML5 canvas绘制一个矩形的方法 发布时间:2020-08-29 11:23:12 来源:亿速云 阅读:102 作者:小新 这篇文章将为大家详细讲解有关使用HTML5 canvas绘制一 ...
- ppt图片在word中不能正常显示,只显示为矩形框的解决方法
ppt图片在word中不能正常显示,只显示为矩形框的解决方法 参考文章: (1)ppt图片在word中不能正常显示,只显示为矩形框的解决方法 (2)https://www.cnblogs.com/ga ...
- ndk c调用java_使用NDK将Android转换为C,然后在C中调用Java函数
因此,我正在重新创建Palm Pilot程序以在Android中运行.我必须继续使用C编写的库,但我正在重写应用程序的UI组件和蓝牙组件以在Android中运行.要在蓝牙连接的另一端初始化设备,我从C ...
- 如何在MDI中相同的子窗体只保留一个实例
为什么80%的码农都做不了架构师?>>> 阅读: 107 评论: 1 作者: blackcore 发表于 2009-11-16 14:24 原文链接 很明显,在一个MDI窗体中 ...
- 又踩.NET Core的坑:在同步方法中调用异步方法Wait时发生死锁(deadlock)
之前在将 Memcached 客户端 EnyimMemcached 迁移 .NET Core 时被这个"坑"坑的刻骨铭心(详见以下链接),当时以为只是在构造函数中调用异步方法(注: ...
- Java中调用FTP服务时inputStream获取一直为null
问题描述:Java调用FTP服务时,已成功登录到了FTP服务中,文件路径中无中文字符,当根据文件路径获取 输入流inputStream时,inputStream一直为null BufferedRead ...
最新文章
- 短信接口在本地调试正常_Pivotal实践:腾讯云短信小应用
- 读书记:asp.net2.0电子商务开发实战
- php mysql 双条件排序,PHP-MySQL联合查询,按2个变量排序
- mysql怎样dao出数据库_mysql怎么导出数据库?
- Web前端笔记(10)Grid布局
- 记录——《C Primer Plus (第五版)》第七章编程练习第八题
- Elasticsearch 不属于 Elastic
- 为什么Linux CFS调度器没有带来惊艳的碾压效果? | CSDN博文精选
- 利用HTML5开发Android笔记(中篇)
- HDU6383 p1m2
- InstallShield教程-打包.NET程序
- linux svn 查看忽略文件,linux下SVN忽略文件/文件夹的方法
- android 禁止获得焦点,防止EditText自动获取焦点
- 有趣的游戏-猜黑白纸
- 不讲周期长短不足以谈牛熊
- 域账户登录本地计算机用户名,如何实现域账户domain/user登陆时自动添加到本地计算机poweruser用户组...
- 前端开发通过图片编码实现拍照身份证正反面上传功能
- AttributeError: module ‘tensorflow_core.compat.v1‘ has no attribute ‘contrib‘
- 狼人杀暂时未连接到语音服务器,狼人杀连接服务器失败 连接不上网络怎么办...
- 《剑侠情缘网络版》开发回顾