亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Android實現帶圓環的圓形頭像

瀏覽:63日期:2022-09-23 08:14:43

在最近寫的一個天氣APP中用到了圓形頭像這樣的一個樣式,中間是圓形的頭像(被圓形切割的圖片),周圍是一個帶顏色的圓環。如下圖所示,今天就來說一所它的實現過程。

Android實現帶圓環的圓形頭像

它的實現也不是特別困難,其實就是用到了BitmapShader這個用法,然后包裝成一個paint,最后畫出一個圓。

1>實現一個Paint畫出以圓形背景的圓。

2>以同樣的圓形畫出一個稍微小一點的圓,作為它的有色圓環。(此圓和上一個圓顏色不同)。

3>用BitmapShader實現一個新的圓,和第二個圓的大小圓心一致。

(BitmapShader只能在onDraw中實現,在其他外部無法實現)

具體代碼如下:

1、界面代碼

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android: android:layout_width='match_parent' android:layout_height='match_parent' android:paddingBottom='@dimen/activity_vertical_margin' android:paddingLeft='@dimen/activity_horizontal_margin' android:paddingRight='@dimen/activity_horizontal_margin' android:paddingTop='@dimen/activity_vertical_margin' tools:context='com.example.app_switchbutton.CircleWeatherActivity'> <com.example.app_switchbutton.CircleWeather android:layout_width='250dp' android:layout_height='wrap_content' android: android:layout_centerHorizontal='true'/> </RelativeLayout>

2、邏輯java代碼:

package com.example.app_switchbutton; import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Shader;import android.util.AttributeSet;import android.view.View; /** * Created by 盡途 on 2017/5/12. */ public class CircleWeather extends View { private int widthSize; private int heightSize; private Paint mpaint1,mpaint2,mpaint3; private Bitmap mbitmap; private BitmapShader mbitmapshader; public CircleWeather(Context context){ super(context); initView(); } public CircleWeather(Context context, AttributeSet attributeSet){ super(context,attributeSet); initView(); } private void initView(){ mpaint1=new Paint(); mpaint2=new Paint(); mpaint3=new Paint(); mpaint2.setStyle(Paint.Style.FILL); mpaint3.setStyle(Paint.Style.FILL); mpaint2.setAntiAlias(true); mpaint3.setAntiAlias(true); mpaint2.setColor(getResources().getColor(R.color.colorPrimary)); mpaint3.setColor(getResources().getColor(R.color.colorGray)); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { widthSize=MeasureSpec.getSize(widthMeasureSpec); heightSize=widthSize; setMeasuredDimension(widthSize,heightSize); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); } @Override protected void onDraw(Canvas canvas) { mbitmap= BitmapFactory.decodeResource(getResources(),R.drawable.hehua);//bitmapshader只能在onDraw中實現在外部不可以 int BitmapWidthSize=mbitmap.getWidth(); int BitmapHeightSize=mbitmap.getHeight(); float scale=(float)widthSize/Math.min(BitmapHeightSize,BitmapWidthSize);//獲取最為合適的尺寸 Matrix matrix=new Matrix(); matrix.setScale(scale,scale); Bitmap bitmap=Bitmap.createBitmap(mbitmap,0,0,BitmapWidthSize,BitmapHeightSize,matrix,true); mbitmapshader=new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP); mpaint1.setShader(mbitmapshader); canvas.drawCircle((float)widthSize*0.5f,(float)heightSize*0.5f,(float)heightSize*0.5f,mpaint2); canvas.drawCircle((float)widthSize*0.5f,(float)heightSize*0.5f,(float)heightSize*0.47f,mpaint3); canvas.drawCircle((float)widthSize*0.5f,(float)heightSize*0.5f,(float)heightSize*0.47f,mpaint1); super.onDraw(canvas); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 好爽好黄的视频 | 91真人毛片一级在线播放 | 国产精品国产午夜免费福利看 | 欧美精品免费线视频观看视频 | 99热在线只有精品 | 香蕉香蕉国产片一级一级毛片 | 国产一区二区三区四区小蝌蚪 | 午夜国产在线 | 国产福利写真视频在线观看 | 黄网站在线免费 | 成人免费毛片一区二区三区 | 国产精品日韩欧美久久综合 | 大学生一级一片第一次欧美 | 成人精品一区久久久久 | 麻豆精品久久精品色综合 | 日本一级级特黄特色大片 | 一道本一区二区三区 | 亚洲欧美成人中文在线网站 | 国产精品va在线观看无 | 日本黄色大片免费看 | 国产亚洲精品观看91在线 | 日本免费一区二区三区a区 日本内谢69xxxx免费播放 | a毛片毛费观看 | 污片视频在线观看 | 国产一久久香蕉国产线看观看 | 一级毛毛片毛片毛片毛片在线看 | 国产草逼视频 | 国产系列欧美系列日韩系列在线 | 一级aa毛片 | 国产精品乱码免费一区二区 | 我要看一级黄色 | 免费大片在线观看高清 | 国产日韩在线视频 | 久热re这里只有精品视频 | 国产精品日韩精品 | 成人午夜在线播放 | 超清波多野结衣精品一区 | 91青青国产在线观看免费 | 黄色小视频在线观看免费 | 欧美黄色免费大片 | 久久综合九色综合97手机观看 |