冲向大牛之安卓:学习界面怎么在程序中画出来

今天看了一个内存管理软件,界面全是在程序中画出来的,了解后才发现原来这种内存管理软件因为界面时常在变化
所以只能在程序中通过代码来实现,这就要设计到安卓中的view类了,直接上代码:

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(new MyView(this));
  
 }

private class MyView extends View{

public MyView(Context context) {
   super(context);
   // TODO Auto-generated constructor stub
  }
  /* (non-Javadoc)
   * @see android.view.View#onDraw(android.graphics.Canvas)
   */
  @Override
  protected void onDraw(Canvas canvas) {
   // TODO Auto-generated method stub
   super.onDraw(canvas);
   Paint paint =new Paint();
   paint.setAntiAlias(false);
  
   paint.setColor(Color.BLUE);
   canvas.drawCircle(150, 150, 100, paint);
  }
  
 }

}
这是一个简单的画图,在屏幕上画了一个圆,通过setContentView(new MyView(this))展现到activity

1.首先我们要了解这里面的几个概念,paint画笔,canvas画布,也就是这个屏幕就相当于一块画布canvas,你手里拿着paint

向上面画出你想要的东西

2.paint里面有许多参数,其中paint.setAntiAlias(false);这一项是设置画笔是否抗锯齿,直接上效果图,可以看出区别还是

很大的,所以我们一般要设置此项为ture

3.canvas里面有许多图形,可以直接调用

后续再接着讲,今天先写到这里!!!!!!!!

时间: 2024-08-01 19:23:56

冲向大牛之安卓:学习界面怎么在程序中画出来的相关文章

安卓学习-界面-布局-RelativeLayout

RelativeLayout相对布局,所有内部的组件都是相对的 XML属性 XML属性 函数 说明 android:gravity setGravity 内部组件的对其方式 android:ignoreGravity setIgnoreGravity 设置哪个组件不受Gravity影响 RelativeLayout.LayoutParams用来设置内部组件的对齐方式 XML属性 说明 android:layout_centerHorizontal 水平居中 android:layout_cent

安卓学习-界面-View和GroupView

所有的界面元素都是继承与View(如:ImageView .Button等),布局继承于GroupView(如:LinearLayout等) view的主要属性,这里直接是xml配置里写了,当然直接通过代码也是可以的 XML属性 相关方法 说明 android:alpha setAlpha(float alpha) alpha值是从0~1的,比如0.5相当于透明50%,并且需要注意的是3.0以下版本没有这个属性,因此只要设置了就相当于不透明,3.0版本以下可以用过view.getBackgrou

安卓学习-界面-布局-LinearLayout

1.常用的xml属性 XML属性 相关方法 说明 android:baselineAligned setBaselineAligned 看不懂什么意思,这个是网上的解释 设置为False将阻止该布局管理器于他的子元素基线对其  android:divider setDividerDrawable(Drawable divider) LinearLayout好像没效果 设置垂直布局时2个按钮之间的分隔线 android:gravity setGravity 组件内部的对齐方式,有如下几种 top

安卓学习-界面-View的自定义

android的所有UI控件,都是基于View的,因此特意重点学习了下这个,为后面学习其他控件打下基础. http://www.360doc.com/content/14/0102/12/12050012_342019150.shtml 重新时常用覆盖的方法 package com.example.ddddddd; import android.content.Context; import android.graphics.Canvas; import android.graphics.Rec

冲向大牛之安卓---2014.11月面试经常碰到的一些问题

1.首先最常见的问题就是Acitivity的生命周期相信朋友们在学校已经背的滚瓜烂熟了,但是有的公司会问service的生命周期,以及启动service的两种方式(startservice和bindservice),以及两者的区别,而且会问你怎么才能让service启动后不被杀死. 2.第二个常被问到的就是listview了,以及listview的优化,listview的优化一般说的都是使用viewholder减少findviewbyid的使用,其次是异步加载图片,还有就是分页加载,如果你使用过

安卓学习-界面-事件-handler

安卓程序运行后,系统会产生一条主线程,如果在主线程里修改UI,则会照成冲突,因此安卓建议用handler来更改UI 1.4张图片定时变换 MainActivity.java public class MainActivity extends Activity { ImageView imageView1; int index=0; int[] pics=new int[]{R.drawable.pic1,R.drawable.pic2,R.drawable.pic3}; @Override pr

安卓学习-界面-ui-GirdViewExpandableListView

属性 属性 方法 说明  android:childDivider  setChildDivider(Drawable childDivider) 子视图的分隔条,好像没法调高度  android:childIndicator  setChildIndicator  子视图旁边的图片,好像没效果  android:groupIndicator  setChildIndicator(Drawable childIndicator) 主视图左边的图片 GirdViewExpandableListVi

安卓学习-界面-ui-TabHost

TabHost注意点 1.界面上要放上TabHost,并添加自定义的选项卡,而且还必须用代码来设置tab,并不是xml放了就行的 2.Activity必须继承TabActivity,否则没有getTabHost函数 3.现在已经不推荐使用TabActivity了,推荐用Flagment,书上是这么说的 例子 第一个tab页登陆窗口是用另外一个activity的,其他都是XML里写的 activity_main.xml <LinearLayout xmlns:android="http://

安卓学习-界面-事件-AsyncTask

异步任务Asynctask完成一个下载 activity_main.xml <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=&quo