频道栏目
IT货架 > > 正文
android中自定义控件
网友分享于:Jan 1, 1970 8:00:00 AM    来源: IT货架   
在android中可以运用android自身所带的控件按照自己的自愿进行组合、批改,抵达满意效果。 这个比方是个简略的自定义控件的比方,只是继承android自身的Button控件,绑定监听器并在获得焦点时在外围用画笔画出外框。若想在Button中添加其他工作或添加其他效果,也可以此类比。 首先是Mainactivity.java: package com.example.mybutton; http://www.fp1111.info/linked/20130427.do import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity { public MyButton mybutton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mybutton = (MyButton)findViewById(R.id.mybutton); }} 在Mainactivity中只是简略的定义了一个自定义的MyButton控件。 继承Button的MyButton: package com.example.mybutton;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Paint.Style;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MyButton extends Button implements OnClickListener{ Paint paint; boolean paintflag; public MyButton(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub paint = new Paint(); paint.setStyle(Style.STROKE); paint.setStrokeWidth(2); getPaint().setColor(110); //选用rgb方法的整数设置颜色 setOnClickListener(this); //绑定监听器工作 paintflag = false; } @Override public void onClick(View v) { // TODO Auto-generated method stub// paintflag = true;// invalidate(); //改写绘画 System.out.println("===============click"); } @Override public boolean onTouchEvent(MotionEvent event) { //触摸工作 // TODO Auto-generated method stub System.out.println("===============touch"); switch (event.getAction()) { case MotionEvent.ACTION_UP: paintflag = false; invalidate(); break; case MotionEvent.ACTION_DOWN: paintflag = true; case MotionEvent.ACTION_CANCEL: invalidate(); break; } return super.onTouchEvent(event); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); if(paintflag){ drawfocus(canvas); } else{ drawnofocus(canvas); } } private void drawnofocus(Canvas canvas){ paint.setColor(0); canvas.drawRect(1, 1, getWidth() - 1, getHeight() - 1, paint); } private void drawfocus(Canvas canvas){ int alpha = 255; int color = 255 | (alpha << 24); //此处颜色值为FF0000FF,前俩标明透明度(0为透明,FF为不透明),后边的标明RGB颜色 paint.setColor(color); canvas.drawRect(1, 1, getWidth() - 1, getHeight() - 1, paint); }} 在这里只完成了俩功用:绑定Button的监听器和在onTouchEvent工作中运用画笔画出外框或擦去外框。 最终是计划文件: 在计划文件中可以运用自定义的MyButton控件。这里是包名com.example.mybutton和类名(即自定义的控件名)组合而成。 http://www.gookp11.com/linked/20130427.do
相关板块推荐

广告服务联系QQ:1134687142 | 网站地图

版权所有: IT货架- 内容来自互联网,仅供用于技术学习,请遵循相关法律法规. 京ICP备11030978号-1