Implementing a customized drawable in Android

Posted by Girish on Stack Overflow See other posts from Stack Overflow or by Girish
Published on 2010-06-03T16:29:27Z Indexed on 2010/06/03 16:34 UTC
Read the original article Hit count: 518

Filed under:

Hi ,

I was trying to get hold of 2D graphics in Android. As a example i want to implement a custom drawable and show it in my Activity

I have defined a customized drawable by extending from Android drawable as mentioned below

myDrawable extends Drawable {

private static final String TAG = myDrawable.class.getSimpleName(); private ColorFilter cf; @Override public void draw(Canvas canvas) {

//First you define a colour for the outline of your rectangle

Paint rectanglePaint = new Paint(); rectanglePaint.setARGB(255, 255, 0, 0); rectanglePaint.setStrokeWidth(2); rectanglePaint.setStyle(Style.FILL);

//Then create yourself a Rectangle RectF rectangle = new RectF(15.0f, 50.0f, 55.0f, 75.0f); //in pixels

Log.d(TAG,"On Draw method"); // TODO Auto-generated method stub Paint paintHandl = new Paint(); // paintHandl.setColor(0xaabbcc); paintHandl.setARGB(125, 234, 213, 34 ); RectF rectObj = new RectF(5,5,25,25); canvas.drawRoundRect(rectangle, 0.5f, 0.5f, rectanglePaint);

}

@Override public int getOpacity() { // TODO Auto-generated method stub return 100; }

@Override public void setAlpha(int alpha) { // TODO Auto-generated method stub

}

@Override public void setColorFilter(ColorFilter cf) { // TODO Auto-generated method stub this.cf = cf;

}

}

I am trying to get this displayed in my activity, as shown below

public class custDrawable extends Activity {
/** Called when the activity is first created. */

LinearLayout layObj = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); layObj = (LinearLayout) findViewById(R.id.parentLay); ImageView imageView = (ImageView) findViewById(R.id.icon2); myDrawable myDrawObj = new myDrawable(); imageView.setImageDrawable(myDrawObj); imageView.invalidate(); // layObj.addView(myDrawObj, params);

}

}

But when i run the app i see no rectangle on the activity, can anyone help me out? Where am i going wrong?

© Stack Overflow or respective owner

Related posts about android