Android第一次

1. Android的基本组件
  1.1 Activity
    1.1.1 Activity代表手机的一个屏幕
    1.1.2 一个Android程序由多个Activity组成,即:一个Android程序由多屏内容组成
    1.1.3 Activity相当于一个展板,本身没有可视的内容,你把画(View)贴到展板上就可以展示出来了
  1.2 Service
    1.2.1 不可见的组件
    1.2.2 在后台运行
    1.2.3 为其他组件提供后台服务
    1.2.4 监控其他组件的运行状态
    1.2.5 后台播放音乐
  1.3 BroadcastReceiver:广播消息监听器
    1.3.1 作用:用来监听广播,eg:收短信的广播    往手机推送消息
  1.4 ContentProvider:内容提供者
    1.4.1 帮助不同的应用程序间交换数据,eg:获取通讯录信息
  1.5 Intent和IntentFilter    意图
      Activity、Service、BroadcastReceiver之间通信的载体,传递数据

2. View和ViewGroup介绍
   View类似于swing中的JPanel,代表一个空白的矩形区域,Android应用中的绝大部分UI组件都继承于View或其子类
   View还一个重要的子类ViewGroup,它通常作为其它组件的[容器]使
   
   简单来讲View是所有控件的父控件,ViewGroup可以包含其它的View对象,并且是所有布局控件的父类
   Activity相当于一个展板,本身没有可视的内容,你把画(View)贴到展板上就可以展示出来了
   setContentView(view)

3. 自定义视图(onDraw)
  3.1 颜色四种设置方式
      canvas.drawColor(Color.RED);//系统颜色(Color.RED)

      canvas.drawColor(Color.rgb(100, 150, 200));//rgb
      canvas.drawColor(Color.argb(100, 100, 150, 200));//argb,其中第一参数为透明度
      canvas.drawColor(Color.parseColor("#44E21D"));//16进制
  3.2 画板背景
      canvas.drawColor(Color.BLUE)
  3.3 画笔设置
    3.3.1 实心或空心
          paint.setStyle(Style.FILL);//实心
          paint.setStyle(Style.STROKE);// 空心
    3.3.2 粗细
          paint.setStrokeWidth(10)
    3.3.3 抗锯齿
          paint.setAntiAlias(true); 
    3.3.4 颜色设置
          paint.setColor(Color.parseColor("#103864"));   
 

//    笔
    private Paint Paint;

    public MyView(Context context) {
        super(context);
        Paint=new Paint();
//        设置背景颜色
        Paint.setColor(Color.RED);
//        设置空心
        Paint.setStyle(android.graphics.Paint.Style.STROKE);
//        设置实心
//        Paint.setStyle(android.graphics.Paint.Style.FILL);
//        设置抗锯齿
        Paint.setAntiAlias(true);
//        设置粗细
        Paint.setStrokeWidth(3);
//        设置字体大小
        Paint.setTextSize(50);
    }

4. 画图形
  4.1 画圆
      canvas.drawCircle(200, 100, 100, paint)
  4.2 画矩形
      canvas.drawRect(0, 200, 200, 400, paint);
      canvas.drawRect(rect, paint);
      左上角、右下角
  4.3 画多边形(三角形)
    4.3.1 drawLine方式
    4.3.2 drawPath方式
          Path
            moveTo(float x, float y):将起始点设置到x,y点
            lineTo(float x, float y):从当前点绘制一条线段到x,y点
            reset():清除path设置的所有属性
            close():回到初始化形成封装的曲线
    4.3.3 如果画笔为实心,画线与Path方式的区别
          drawLine=空心,drawPath=实心
  4.5 画文字
      drawText()
      paint.setTextSize(50);// 设置文字大,单位为dp
  4.6 画图
      drawBitmap    位图
      Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.qq);
      注意事项:图片名不能是汉字或空格 

//    重写父类画画方法
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
//        画圆
//        canvas.drawCircle(200,200,100,Paint);
//        画矩形
        //        canvas.drawLine(起始X,起始Y,结束X,结束Y,Paint);
//        canvas.drawRect(100,100,300,200,Paint);
//        画三角形
//        canvas.drawLine(100,200,200,100,Paint);
//        canvas.drawLine(100,200,300,200,Paint);
//        canvas.drawLine(300,200,200,100,Paint);

//        图片
        Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.dog);
        bitmap.setWidth(100);
        bitmap.setHeight(100);
        canvas.drawBitmap(bitmap,100,100,Paint);


//        先new一个path对象
//        注:必须设置为空心,实心无法展示
//        Path path=new Path();
//        起始X,Y
//        path.moveTo(100,200);
//        结束X,Y
//        path.lineTo(200,200);
//        canvas.drawPath(path,Paint);
//        凸字
//        Path path=new Path();
//        path.moveTo(100,200);
//        path.lineTo(200,200);
//        path.moveTo(200,200);
//        path.lineTo(200,100);
//        path.moveTo(200,100);
//        path.lineTo(300,100);
//        path.moveTo(300,100);
//        path.lineTo(300,200);
//        path.moveTo(300,200);
//        path.lineTo(400,200);
//        path.moveTo(400,200);
//        path.lineTo(400,300);
//        path.moveTo(100,300);
//        path.lineTo(400,300);
//        path.moveTo(100,200);
//        path.lineTo(100,300);
//        canvas.drawPath(path,Paint);

//        一段话居中
//        String str="中华人民共和国万岁";
//        int width=this.getWidth();
//        int height=this.getHeight();
//        float strSize=Paint.getTextSize();
//        float x=(width-str.length()*strSize)/2;
//        float y=(height-strSize)/2;
//        canvas.drawText(str,x,y,Paint);

    }

 安卓工程目录
    模块
        manifests
            仅有一个文件,系统清单文件,相当于web.xml
        java
            放源文件
        res(放系统资源文件,一个很重要的的类R,自动生成,resource的缩写)
            drawable(放图片资源)
            layout(放布局文件)
            
            
dp(密度,相当于width中的百分比)
sp(密度,相当于width中的的数值xxx.px)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值