首页 > 代码库 > Android中layout.xml文件中加载自定义的View类
Android中layout.xml文件中加载自定义的View类
<com.bn.summer.GGView3 android:layout_width="100dip" android:layout_height="114dip" android:layout_marginLeft="11dip" />
View类的实现:
package com.bn.summer; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; public class GGView3 extends View{ int COMPONENT_WIDTH; int COMPONENT_HEIGHT; boolean initflag=false; Bitmap[] bma; Paint paint; int[] drawablesId; int currIndex=0; boolean workFlag=true; public GGView3(Context father,AttributeSet as) { super(father,as); this.drawablesId=new int[] { R.drawable.room1, R.drawable.room2, R.drawable.room3, }; bma=new Bitmap[drawablesId.length]; initBitmaps(); paint=new Paint(); paint.setFlags(Paint.ANTI_ALIAS_FLAG);//消除锯齿 new Thread() { public void run() { while(workFlag) { currIndex=(currIndex+1)%drawablesId.length; GGView3.this.postInvalidate(); try { Thread.sleep(2500); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } public void initBitmaps() { Resources res=this.getResources(); for(int i=0;i<drawablesId.length;i++) { bma[i]=BitmapFactory.decodeResource(res, drawablesId[i]); } } public void onDraw(Canvas canvas) { if(!initflag) { COMPONENT_WIDTH=this.getWidth();//获取view的宽度 COMPONENT_HEIGHT=this.getHeight();//获取view的高度 initflag=true; } int picWidth=bma[currIndex].getWidth(); int picHeight=bma[currIndex].getHeight(); int startX=(COMPONENT_WIDTH-picWidth)/2; int startY=(COMPONENT_HEIGHT-picHeight)/2; //绘制背景色 //canvas.drawARGB(255, 244, 214, 116); canvas.drawARGB(255, 200, 128, 128); canvas.drawBitmap(bma[currIndex], startX,startY, paint); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。