电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Android studio 實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星的代碼

瀏覽:4日期:2022-09-24 11:00:06

Android studio:實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星今天做了一下老師布置的實(shí)驗(yàn)課作業(yè)安卓的作業(yè)。實(shí)現(xiàn)在屏幕上隨機(jī)位置繪制10個(gè)隨機(jī)大小的五角星。雖然我之前自己學(xué)習(xí)過安卓,但是還有很多的功能沒有用到,學(xué)到,比如這次這個(gè)畫圖的功能沒有使用過,所以在做這個(gè)實(shí)驗(yàn)的時(shí)候有很多的問題。實(shí)現(xiàn)的方法是自己自定義組件,新建一個(gè)類來繼承View,進(jìn)行自定義組件。先開始五角星的畫法,通過translate(x,y)方法來改變起點(diǎn)的位置,使用rotate()方法進(jìn)行筆鋒的轉(zhuǎn)角。代碼如下:

canvas.translate(10,100);//確定五角星的起點(diǎn)的位置 canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144);//轉(zhuǎn)的角度 canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint);

然后就是如何進(jìn)行隨機(jī)的選位置隨機(jī)的的大小,我是用的方法是,代碼:

int x = (int) (Math.random()*600+200);//起點(diǎn)的X軸的位置 int y = (int) (Math.random()*1000+100);//起點(diǎn)y軸的位置 int r = (int) (Math.random()*250 +20);//五角星的長度

然后我就把這兩個(gè)放在一起,用一個(gè)For循環(huán)循環(huán)10次。然而!

Android studio 實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星的代碼

五角星畫出去了?這是為什么,我就開始找呀找,然后發(fā)現(xiàn)是因?yàn)槲业漠嫻P的坐標(biāo)的位置改了,沒有改回來,畫下一個(gè)五角星的時(shí)候就會(huì)把之前的坐標(biāo)當(dāng)成(0,0)。這個(gè)可怎么辦呀,我想到了一種方式就是打破思路,重新用一種方式,用數(shù)學(xué)來計(jì)算五角星每一筆的起點(diǎn)和終點(diǎn)。這個(gè)方法不會(huì)出現(xiàn)畫出去的情況(數(shù)值合理)。

這個(gè)方法連接(同學(xué)寫的)

https://blog.csdn.net/weixin_43624626/article/details/106150822然后:我又想到了看一看有沒有別的方式能解決,開始在網(wǎng)上搜,然后就看到了一種方法,可以記住之前的位置,和還原位置。代碼:

canvas.save();//記住一開始坐標(biāo)的位置 canvas.translate(x,y); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.restore();//還原上一個(gè)記住的位置

成功了!!!!!!!!!!!!!!

Android studio 實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星的代碼

經(jīng)過多次的實(shí)驗(yàn),沒有出現(xiàn)畫出去的情況。作業(yè)完成了,我寫了這篇博客,我看看我之前的博客,發(fā)現(xiàn)好像這次的博客寫的字好多呀!!!代碼:XML:

<com.example.shiyan5.CanvasView android:layout_width='match_parent' android:layout_height='match_parent'/>

class:

import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;import androidx.annotation.Nullable;import java.util.Random;public class CanvasView extends View { public CanvasView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint1 = new Paint(); for (int i = 0; i < 10; i++) { Paint paint = paint1; paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(5); paint.setColor(Color.GREEN); paint.setTextSize(24); int x = (int) (Math.random()*600+200); int y = (int) (Math.random()*1000+100); int r = (int) (Math.random()*250 +20); canvas.save(); canvas.translate(x,y); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.translate(r,0); canvas.rotate(144); canvas.drawLine(0,0,r,0,paint); canvas.restore(); }}

覺得不錯(cuò)的話:嘿嘿!

Android studio 實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星的代碼

總結(jié)

到此這篇關(guān)于Android studio 實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星的文章就介紹到這了,更多相關(guān)Android studio 實(shí)現(xiàn)隨機(jī)位置畫10個(gè)隨機(jī)大小的五角星內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 广东教师资格网-广东教师资格证考试网 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 电车线(用于供电给电车的输电线路)-百科 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 喷播机厂家_二手喷播机租赁_水泥浆洒布机-河南青山绿水机电设备有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 20年条刷老厂-条刷-抛光-工业毛刷辊-惠众毛刷| 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 |