Back to project page DHSC---android.
The source code is released under:
GNU General Public License
If you think the Android project DHSC---android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.cal.sched; /*from w ww .j av a2 s .c o m*/ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.drawable.Drawable; import android.text.TextPaint; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; /** * TODO: document your custom view class. */ public class LinClassView extends View { private String mExampleString; // TODO: use a default from R.string... private int mExampleColor = Color.RED; // TODO: use a default from R.color... private float mExampleDimension = 0; // TODO: use a default from R.dimen... private Drawable mExampleDrawable; private TextPaint mTextPaint; private float mTextWidth; private float mTextHeight; private String tClass = ""; private String tTeacher = ""; public LinClassView(Context context) { super(context); init(null, 0); } public LinClassView(Context context, AttributeSet attrs) { super(context, attrs); init(attrs, 0); } public LinClassView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(attrs, defStyle); } /** * adds the classes to the listView * need to intent the string of the elements of 0-8 and to fill the lists with those * * the images are used for color coding the classes that are being taken, and classes that are * not being taken. * * i.e. if the period is 3, then the period 3's color will be white, and the other classes * colors will be black the file sizes will be 50px X 50px * * @param cClass * @param cTeacher */ public void addClasses(String cClass, String cTeacher) { //TODO: send each element of the ArrayList for class and teacher and then set the values tClass = cClass; tTeacher = cTeacher; TextView rClass = (TextView) findViewById(R.id.aclass); TextView rTeacher = (TextView) findViewById(R.id.ateacher); rClass.setText(tClass); rTeacher.setText(tTeacher); } private void init(AttributeSet attrs, int defStyle) { // Load attributes final TypedArray a = getContext().obtainStyledAttributes( attrs, R.styleable.LinClassView, defStyle, 0); mExampleString = a.getString( R.styleable.LinClassView_exampleString); mExampleColor = a.getColor( R.styleable.LinClassView_exampleColor, mExampleColor); // Use getDimensionPixelSize or getDimensionPixelOffset when dealing with // values that should fall on pixel boundaries. mExampleDimension = a.getDimension( R.styleable.LinClassView_exampleDimension, mExampleDimension); if (a.hasValue(R.styleable.LinClassView_exampleDrawable)) { mExampleDrawable = a.getDrawable( R.styleable.LinClassView_exampleDrawable); mExampleDrawable.setCallback(this); } a.recycle(); // Set up a default TextPaint object mTextPaint = new TextPaint(); mTextPaint.setFlags(Paint.ANTI_ALIAS_FLAG); mTextPaint.setTextAlign(Paint.Align.LEFT); // Update TextPaint and text measurements from attributes invalidateTextPaintAndMeasurements(); } private void invalidateTextPaintAndMeasurements() { mTextPaint.setTextSize(mExampleDimension); mTextPaint.setColor(mExampleColor); mTextWidth = mTextPaint.measureText(mExampleString); Paint.FontMetrics fontMetrics = mTextPaint.getFontMetrics(); mTextHeight = fontMetrics.bottom; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // TODO: consider storing these as member variables to reduce // allocations per draw cycle. int paddingLeft = getPaddingLeft(); int paddingTop = getPaddingTop(); int paddingRight = getPaddingRight(); int paddingBottom = getPaddingBottom(); int contentWidth = getWidth() - paddingLeft - paddingRight; int contentHeight = getHeight() - paddingTop - paddingBottom; // Draw the text. canvas.drawText(mExampleString, paddingLeft + (contentWidth - mTextWidth) / 2, paddingTop + (contentHeight + mTextHeight) / 2, mTextPaint); // Draw the example drawable on top of the text. if (mExampleDrawable != null) { mExampleDrawable.setBounds(paddingLeft, paddingTop, paddingLeft + contentWidth, paddingTop + contentHeight); mExampleDrawable.draw(canvas); } } /** * Gets the example string attribute value. * @return The example string attribute value. */ public String getExampleString() { return mExampleString; } /** * Sets the view's example string attribute value. In the example view, this string * is the text to draw. * @param exampleString The example string attribute value to use. */ public void setExampleString(String exampleString) { mExampleString = exampleString; invalidateTextPaintAndMeasurements(); } /** * Gets the example color attribute value. * @return The example color attribute value. */ public int getExampleColor() { return mExampleColor; } /** * Sets the view's example color attribute value. In the example view, this color * is the font color. * @param exampleColor The example color attribute value to use. */ public void setExampleColor(int exampleColor) { mExampleColor = exampleColor; invalidateTextPaintAndMeasurements(); } /** * Gets the example dimension attribute value. * @return The example dimension attribute value. */ public float getExampleDimension() { return mExampleDimension; } /** * Sets the view's example dimension attribute value. In the example view, this dimension * is the font size. * @param exampleDimension The example dimension attribute value to use. */ public void setExampleDimension(float exampleDimension) { mExampleDimension = exampleDimension; invalidateTextPaintAndMeasurements(); } /** * Gets the example drawable attribute value. * @return The example drawable attribute value. */ public Drawable getExampleDrawable() { return mExampleDrawable; } /** * Sets the view's example drawable attribute value. In the example view, this drawable is * drawn above the text. * @param exampleDrawable The example drawable attribute value to use. */ public void setExampleDrawable(Drawable exampleDrawable) { mExampleDrawable = exampleDrawable; } }