软件应用教程

GraphableButton类实现Android UI开发 Android开发技术

GraphableButton类实现Android UI开发 Android开发技术

  从Android 1.6开始,系统设置中的电池使用记录提供了一种简单的自绘Button按钮演示-GraphableButton类,通过GraphableButton我们可以很清晰的了解到前几次Android123讲到的UI开发要点。

public class GraphableButton extends Button {  //从Button类继承
    private static final String TAG = "GraphableButton";

    static Paint[] sPaint = new Paint[2];  //定义两种颜色

    static {
        sPaint[0] = new Paint();
        sPaint[0].setStyle(Paint.Style.FILL);
        sPaint[0].setColor(0xFF0080FF);
       
        sPaint[1] = new Paint();
        sPaint[1].setStyle(Paint.Style.FILL);
        sPaint[1].setColor(0xFFFF6060);
    }
   
    double[] mValues;
   
    public GraphableButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
   
    public void setValues(double[] values, double maxValue) { //设置显示范围,下文提到
        mValues = values.clone();
        for (int i = 0; i < values.length; i++) {
            mValues[i] /= maxValue;
        }
    }
   
    @Override
    public void onDraw(Canvas canvas) { //重写onDraw直接绘制
        Log.i(TAG, "onDraw: w = " + getWidth() + ", h = " + getHeight());
       
        int xmin = getPaddingLeft();
        int xmax = getWidth() – getPaddingRight();
        int ymin = getPaddingTop();
        int ymax = getHeight() – getPaddingBottom();
       
        int startx = xmin;
        for (int i = 0; i < mValues.length; i++) {
            int endx = xmin + (int) (mValues[i] * (xmax – xmin));
            canvas.drawRect(startx, ymin, endx, ymax, sPaint[i]); //通过canvas绘制范围

        // 该方法原型 drawRect(float left, float top, float right, float bottom, Paint paint) 

            startx = endx;
        }
        super.onDraw(canvas);
    }
}

调用方法很简单,和普通的Button没有什么区别,这里我们仅仅多定义了setValues方法,Android开发网提醒网哟注意布局文件xml中如何定义,在最下文

  private GraphableButton mButtons;
    
     mButtons = (GraphableButton) findViewById(R.id.button0);

     mButtons.setOnClickListener(this); //设置一个按下事件监听 

     mButtons.setVisibility(View.INVISIBLE); //设置当前按钮不可见

     mButtons.setText("android123.com欢迎您");
     mButtons.setValues(0,100);
     mButtons.setVisibility(View.VISIBLE); //设置按钮可见

 下面在layout.xml中如何写呢,这里要写上自己程序完整的package name才能正确被adt识别,相关的具体定义如下:

        <com.android123.cwjTest.GraphableButton
            android:id="@+id/button7"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="4dp"
            android:layout_weight="1" />

软件应用教程

更多有关于 软件应用教程

如何利用火车采集软件采集58招聘信息_爬虫软件技术与爬虫软件网页数据采集器门户

什么是火车采集器 如何使用火车采集器软件_爬虫软件技术与爬虫软件网页数据采集器门户

如何使用火车采集器制作zencart数据包来进行批量导入商品_爬虫软件技术与爬虫软件网页数据采集器门户

火车头采集器的DedeCMS5.7文章免登陆发布接口_爬虫软件技术与爬虫软件网页数据采集器门户

火车头采集器如何把浏览器里面的cookie到火车头采集器里面_爬虫软件技术与爬虫软件网页数据采集器门户

火车头采集器教程之如何通过fiddler获取cookie简单教程_爬虫软件技术与爬虫软件网页数据采集器门户

火车头采集器FTP设置 图片下载上传的路径的设置_爬虫软件技术与爬虫软件网页数据采集器门户

火车头采集器文件图片下载路径设置简易说明_爬虫软件技术与爬虫软件网页数据采集器门户

火车采集器采集淘宝天猫商品采集多页获取宝贝详细教程_爬虫软件技术与爬虫软件网页数据采集器门户

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2016 Tadke.com. Powered by Wordpress.