Android 重绘 View(2017)
来源:互联网 发布:网络用语鱼是什么意思 编辑:程序博客网 时间:2024/06/05 23:04
此刻打盹,你将做梦;而此刻学习,你将圆梦。
今天我们来学习如何重绘View!
所谓的重绘就是重新绘制他的外观(样式),既然要重新绘制,那么首先需要继承 View 类。
extends View
首先,新建一个android项目,我们定义一个类,并继承 View,类名叫:DrawView:
public class DrawView extends View { public DrawView(Context context) { super(context); }}
继承View类以后,我们需要找到View里面用来绘制的函数,仔细找你会找到一个 onDraw(Canvas canvas) 函数,没错这个函数就是用来绘制View外观的函数!
接下来我们重写 onDraw(Canvas canvas) 这个函数:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); }
函数里面有一个类:
Canvas
这个类就是用来绘制的,但是仅凭 Canvas 这一个类还不够,我们还需要另一个类:
Paint
通常,我们把Canvas这个类比作 ‘画纸’;把Paint这个类比作 ‘画笔’
这两个类一起合作,就可以绘制图形了。
知道怎么绘制以后,我们来进行实践操作:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint=new Paint(); paint.setAntiAlias(true);//设置抗锯齿 paint.setColor(Color.YELLOW);//设置画笔的颜色 paint.setStrokeWidth(10);//设置画笔的粗细 paint.setStyle(Paint.Style.FILL);//设置样式(FILL为填充内部颜色,STROKE为只描边不填充) /** * 画笔选择(设置)好后,我们就可以在纸上(Canvase)画画了 * 本次实例绘制一个 圆形*/ canvas.drawCircle(300,300,200,paint); /**.drawCircle()为绘制一个圆形 第一个参数为 x 坐标,第二个参数为 y 坐标,第三个为 半径 的大小,,第四个就是把我们设置好的 paint */ }
这样一个简单的重绘View就完成了,接下来就是把他显示出来,在activity_main.xml里面添加一个FrameLayout布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/framelayout" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout></LinearLayout>
在Mainactivity.java 里面应用我们刚才重绘的View:
public class MainActivity extends AppCompatActivity { private FrameLayout frameLayout;//定义一个FrameLayout @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); setContentView(R.layout.activity_main); frameLayout = (FrameLayout) findViewById(R.id.framelayout);//初始化 framelayout frameLayout.addView(new DrawView(this));//在这里,使用frameLayout的addView函数,把我们刚才重绘的View组件添加进去 }}
然后运行程序,如图,我们就创建了一个直径400dp,半径200dp的黄色大圆:
阅读全文
1 0
- Android 重绘 View(2017)
- Android View原理(View树遍历,View重绘,View动画)
- Android之view重绘
- Android之view重绘
- android View 重绘机制
- android,view的重绘
- 自定义View(重绘)
- Android UI绘制之View重绘
- android view 的重绘机制
- view 重绘
- View的重绘
- Android自定义View解析之视图状态及视图重绘(二)
- Android View详解(三) 视图状态及重绘流程分析
- android view 相关方法 layout draw 布局 重绘
- android view 相关方法 layout draw 布局 重绘
- Android View重绘和更新: invalidate和requestLayout
- Android 自定义 View 的重绘和更新使用
- Android View重绘和更新: invalidate和requestLayout
- 服务器产生大量CLOSE_WAIT状态的socket问题的排查过程
- 算法训练 字串统计
- MySQL load语句详细介绍
- 宁波市第32届中小学生程序设计竞赛(初中组) 公鸡打鸣
- C++ (生成二维码,扫描有惊喜)
- Android 重绘 View(2017)
- 数组(随机生成,三种排序,二分查找)
- 算法训练 最小乘积(基本型)
- Android 5.0 6.0 7.0的新特性
- 经典小例
- 算法训练 K好数
- 函数 (概念,定义,重载,参数)
- C sharp 实现 猜数…
- 用编程语言写一封情书