zoukankan      html  css  js  c++  java
  • 开发自定义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);
        }
    
    }
  • 相关阅读:
    cocos2dx动画常见特效(转)
    cocos2dx常见Action(转)
    cocos2dx常见场景切换动画(转)
    android AlertDialog.Builder(Context context)换行
    使用NPOI操作Excel文件及其日期处理
    java jar文件打包成exe(Launch4j使用说明)
    知识日志2
    知识日记1
    框架体系对小软件作坊的 重要性 第二章
    框架体系对小软件作坊的 重要性 第一章
  • 原文地址:https://www.cnblogs.com/android-zcq/p/3139414.html
Copyright © 2011-2022 走看看