zoukankan      html  css  js  c++  java
  • android1

    UI组件的基本属性

    android:id  指定该控件的唯一标识,可通过findViewById("id")获取指定的界面组件

    android:layout_width  指定该组件的宽度.match_parent与父容器具有相同的宽度;wrap_content能包裹内容即可;

    android:layout_height  指定该组件的高度

    android:layout_marginBottom:指定该组件下边的页边距

    android:layout_marginLeft:指定该组件左边的页边距

    android:layout_marginRight:指定该组件右边的页边距

    android:layout_marginTop:指定该组件上边的页边距

    组件

    View组件:所有UI控件,容器控件的基类。调用Activity的setContentView()方法显示

    Activity:负责与用户交互,只能通过setContentView(View)来显示指定组件

    Service:后台运行

    BroadcastReceiver:事件监听器

    ContentProvider:数据交换

    Intent:通信载体

    IntentFilter:声明

    简单图片浏览器实例

    activity.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context=".MainActivity"
        android:id="@+id/root"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </LinearLayout>

    MainActivity.java

    package com.example.myapplication;
    
    import android.os.Bundle;
    
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.appcompat.widget.Toolbar;
    
    import android.view.View;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    
    public class MainActivity extends AppCompatActivity {
        //定义一个访问图片的数组
        int [] images=new int[]
                {
                        R.drawable.java,
                        R.drawable.javaee,
                        R.drawable.swift,
                        R.drawable.ajax,
    
                };
        int CurrentImg=0;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取LinearLayout布局容器
            LinearLayout main = (LinearLayout) findViewById(R.id.root);
            //程序创建ImageView组件
            final ImageView image = new ImageView(this);
            //将ImageView组件添加到LinearLayout布局容器中
            main.addView(image);
            //初始化第一张图片
            image.setImageResource(images[0]);
            image.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //改变ImageView里显示的图片
                    image.setImageResource(images[++CurrentImg % images.length]);
                }
            });
        }
    }

     跟随手指运动的小球实例

     CustomViewActivity
    package com.example.myapplication1;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.widget.LinearLayout;
    
    public class CustomViewActivity extends AppCompatActivity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //获取布局文件中的LinearLayout容器
            //LinearLayout root=(LinearLayout)findViewById(R.id.root);
            //创建DrawView组件
            //final DrawView draw=new DrawView(this);
            //设置自定义组件的最小宽度、高度
            //draw.setMinimumWidth(300);
            //draw.setMinimumHeight(500);
            //root.addView(draw);
        }
    }
    DrawView
    package com.example.myapplication1;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.view.View;
    
    import java.util.jar.Attributes;
    
    import static android.os.Build.VERSION_CODES.P;
    
    public class DrawView extends View {
        public float currentX=40;
        public float currentY=50;
        //定义并创建画笔
        Paint p=new Paint();
        public DrawView(Context context) {
            super(context);
        }
        public DrawView(Context context, AttributeSet set)
        {
            super(context,set);
        }
        @Override
        public void onDraw(Canvas canvas)
        {
            super.onDraw(canvas);
            //设置画笔的颜色
            p.setColor(Color.RED);
            //绘制一个小圆(作为小球)
            canvas.drawCircle(currentX,currentY,15,p);
        }
        //为该组件的触碰事件重写事件处理方法
        @Override
        public boolean onTouchEvent(MotionEvent event)
        {
            //修改currentX,currentY两个属性
            currentX=event.getX();
            currentY=event.getY();
            //通知当前组件重绘自己
            invalidate();
            //返回true表明该处理方法已经处理该事件
            return true;
        }
    }

    main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/root">
        <com.example.myapplication1.DrawView
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
  • 相关阅读:
    MFC中,什么是CALLBACK函数,什么是WINAPI函数,二者有什么区别和联系?
    浙江移动话费计算-js代码
    [转]C#网页自动登录和提交POST信息的多种方法
    JavaScript小数四舍五入toFixed
    C#.NET应用程序实现网页自动登录
    VC改变对话框按钮字体颜色和背景的解决方案(转)
    WPF窗口阴影
    用MVVM模式开发中遇到的零散问题总结(1)
    NPOI之Excel——合并单元格、设置样式、输入公式
    近距离接触RAC DRM
  • 原文地址:https://www.cnblogs.com/songxinai/p/12416221.html
Copyright © 2011-2022 走看看