Hello,
I want to define the custom View, draw it by myself and use it
in the BaseAdapter's getView() method.
I have overwritted the onDraw(), but the onDraw() method isn't called
and nothing displayed. I don't know why.
Appreciate any advice and help. The code is as follow:
public class VideoItemByDraw extends View {
private TVVideo mVideo = null;
public VideoItemByDraw(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.GRAY);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLACK);
if(mVideo==null)
return;
// draw the video title
paint.setTextSize(16);
canvas.drawText(mVideo.get_title(), 95, 10, paint);
// draw the video date
paint.setTextSize(12);
canvas.drawText(mVideo.get_uploadTime(), 95, 28, paint);
// draw the video duration
canvas.drawText(mVideo.get_duration(), 95, 42, paint);
// draw the video viewTimes
canvas.drawText(mVideo.get_viewTimes(), 95, 56, paint);
//draw the video grade
canvas.drawText(this.getResources().getString(R.string.video_grade),
95, 70, paint);
int grade = Integer.valueOf(mVideo.get_grade());
int scaleX = 20;
for(int i=0;i<grade;i++){
Drawable drawable = this.getResources().getDrawable
(R.drawable.star_bright);
drawable.setBounds(95+scaleX, 70, 95+scaleX, 80);
drawable.draw(canvas);
scaleX+=10;
}
}
/**
* set the video and update the video item
* @param video The video info object
*/
public void setVideo(TVVideo video){
this.mVideo = video;
this.invalidate();
}
}
the getView() is as follow:
public View getView(int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub
TVVideo video = mVideoInfo.getVideoByIndex(position);
if(convertView != null){
((VideoItemByDraw)convertView).setVideo(video);
return convertView;
}
VideoItemByDraw videoItem = new VideoItemByDraw(mContext);
videoItem.setVideo(video);
return videoItem;
}
Thanks for any help.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---