這篇文章給大家分享的是有關(guān)Android如何實現(xiàn)帶描邊的圓角圖片的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供萬州網(wǎng)站建設(shè)、萬州做網(wǎng)站、萬州網(wǎng)站設(shè)計、萬州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、萬州企業(yè)網(wǎng)站模板建站服務(wù),十余年萬州做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。利用學(xué)過的BitmapShader渲染類,我們來實現(xiàn)一個帶描邊的圓角圖片。
具體實現(xiàn):
用來顯示自定義的繪圖類的布局文件
res/layout/main.xml:
打開MainActivity,在文件中創(chuàng)建名為MyView的內(nèi)部類,繼承android.view.View類,并添加構(gòu)造方法和重寫onDraw(Canvas canvas)方法,在里面進(jìn)行作圖:
在onDraw(Canvas canvas)方法中,首先定義一個畫筆,并設(shè)置其使用抗鋸齒功能,然后定義一張背景,然后定義一個要繪制的圓角矩形的區(qū)域,并將畫布在X軸上平移40像素,在Y軸上平移20像素,再繪制一個黑色的2像素的圓角矩形,作為圖片的邊,最后繪制一個使用BitmapShader渲染的圓角矩形圖片,具體代碼如下:
MainActivity:
package com.example.test; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Paint.Style; import android.graphics.Shader.TileMode; import android.os.Bundle; import android.view.View; import android.widget.FrameLayout; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //獲取布局文件中添加的幀布局管理器 FrameLayout fl=(FrameLayout)findViewById(R.id.frameLayout1); //將自定義的MyView視圖添加到幀布局 fl.addView(new MyView(this)); } public class MyView extends View{ private float view_width=300; private float view_height=300; public MyView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { Paint paint=new Paint(); paint.setAntiAlias(true); Bitmap bitmap_bg=BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.backgroud); canvas.drawBitmap(bitmap_bg, 0, 0,paint);//繪制背景 RectF rect=new RectF(0,0,280,180); canvas.translate(40, 20);//將畫布在X軸上平移40像素,在Y軸上平移20像素 //為圖片添加描邊 paint.setStyle(Style.STROKE);//設(shè)置填充樣式為描邊 paint.setColor(Color.BLACK);//設(shè)置顏色為黑色 paint.setStrokeWidth(2);//設(shè)置筆觸寬度為2像素 canvas.drawRoundRect(rect, 10, 10, paint);//繪制一個描邊的圓角矩形 paint.setStyle(Style.FILL);//設(shè)置填充樣式為填充 Bitmap bm=BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.img1); //創(chuàng)建一個在水平方向重復(fù),在豎直方向鏡像的BitmapShader對象 BitmapShader bs=new BitmapShader(bm,TileMode.REPEAT,TileMode.MIRROR); paint.setShader(bs);//設(shè)置渲染對象 //繪制一個使用BitmapShader渲染的圓角矩形圖片 canvas.drawRoundRect(rect, 10, 10, paint); } } }
運(yùn)行效果如圖所示
感謝各位的閱讀!關(guān)于“Android如何實現(xiàn)帶描邊的圓角圖片”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!