• 开发自定义View


    View组件就类似于一个矩形空白区域,刚开始它里面什么都没有,对于android应用的其他UI组件来说,他们都继承了VIew组件,然后在View组件的空白区域上绘制外观.

    基于这个原理,开发者可以开发出项目定制的组件,当android系统提供的UI不能满足开发需求时,可以自定义类去继承View类或者View类的相关子类.然后重写View类中的某些方法; 当这个自定义类写完后,可以通过代码把该自定义组件添加到指定容器中

    通常情况下,会写一个构造器; 例如定义一个随手指触摸移动的球体

    public class DrawCircle extends View {
    
        public float startx=30;
        public float starty=40;
        public DrawCircle(Context context) {
            super(context);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Paint p = new Paint();
            p.setColor(Color.RED);
            canvas.drawCircle(startx, starty, 15, p);
        }
    }
    public class MainActivity extends Activity {
        private DrawCircle dc;
        private LinearLayout ll;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            ll = (LinearLayout) findViewById(R.id.ll_root);
            dc = new DrawCircle(this);
            
            //设置自定义组件的宽高
            dc.setMinimumHeight(500);
            dc.setMinimumWidth(300);
    
            dc.setOnTouchListener(new OnTouchListener() {
    
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    dc.startx = event.getX();
                    dc.starty = event.getY();
                    //视图发生变化,进行重绘
                    dc.invalidate();
                    return true;
                }
            });
            ll.addView(dc);
        }
    
    }
  • 相关阅读:
    11.分类与监督学习,朴素贝叶斯分类算法
    14 深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    9、主成分分析
    8、特征选择
    7.逻辑回归实践
    6.逻辑归回
    5.线性回归算法
    15 手写数字识别-小数据集
  • 原文地址:https://www.cnblogs.com/android-zcq/p/3139414.html
Copyright © 2020-2023  润新知