Android使用RotateImageView 旋转ImageView
废话不多说了,直接给大家代码。
具体代码如下所示:
packagecom.droidhen.game.layout; importandroid.content.Context; importandroid.graphics.Bitmap; importandroid.graphics.Bitmap.Config; importandroid.graphics.Canvas; importandroid.graphics.Paint; importandroid.graphics.PaintFlagsDrawFilter; importandroid.graphics.Rect; importandroid.widget.ImageView; publicclassRotateImageViewextendsImageView{ /**旋转角度**/ privatefloat_degree; /**旋转中心**/ privatefloat_x; privatefloat_y; /**背景和前景资源*/ privateBitmap_bgRes,_fgRes; /**数字图片资源*/ privateBitmap_nums; privateBitmap_buffer; privateCanvas_canvas; privateintstart=; privateintunitx=; publicRotateImageView(Contextcontext){ super(context); _degree=f; _x=; _y=; _nums=BitmapFactory.decodeResource(getResources(),R.drawable.level_num); } publicvoidsetResIds(intbgResId,intfgResId){ _bgRes=BitmapFactory.decodeResource(getResources(),bgResId); _fgRes=BitmapFactory.decodeResource(getResources(),fgResId); } publicvoidsetLevel(intlevel){ String_level=String.valueOf(level); _buffer=Bitmap.createBitmap(_level.length()*(_nums.getWidth()/),_nums.getHeight(),Config.ARGB_); unitx=_nums.getWidth()/; _canvas=newCanvas(_buffer); for(inti=;i<=_level.length()-;i++){ Rectsrc=newRect((_level.charAt(i)-'')*unitx,,(_level.charAt(i)-''+)*unitx,_nums.getHeight()); Rectdst=newRect(i*unitx,,(i+)*unitx,_nums.getHeight()); _canvas.drawBitmap(_nums,src,dst,null); } } publicvoidsetLevel(intlevel,intResid){ _nums=BitmapFactory.decodeResource(getResources(),Resid); String_level=String.valueOf(level); _buffer=Bitmap.createBitmap(_level.length()*(_nums.getWidth()/),_nums.getHeight(),Config.ARGB_); unitx=_nums.getWidth()/; _canvas=newCanvas(_buffer); for(inti=;i<=_level.length()-;i++){ Rectsrc=newRect((_level.charAt(i)-'')*unitx,,(_level.charAt(i)-''+)*unitx,_nums.getHeight()); Rectdst=newRect(i*unitx,,(i+)*unitx,_nums.getHeight()); _canvas.drawBitmap(_nums,src,dst,null); } } publicvoidsetDegree(floatdegree){ _degree=degree; } publicvoidsetDegree(floatdegree,floatx,floaty){ _degree=degree; _x=x; _y=y; } publicfloatgetDegree(){ return_degree; } publicfloatgetRotateX(){ return_x; } publicfloatgetRotateY(){ return_y; } @Override publicvoiddraw(Canvascanvas){ canvas.save(); canvas.setDrawFilter(newPaintFlagsDrawFilter(,Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG)); canvas.rotate(_degree,_x,_y); canvas.drawBitmap(_bgRes,,,null); canvas.drawBitmap(_fgRes,,,null); canvas.drawBitmap(_buffer,(_bgRes.getWidth()-_buffer.getWidth())/f,,null); canvas.restore(); } }
以上代码是关于AndroidRotateImageView可旋转ImageView的全部内容,希望对大家有所帮助。