欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)帶描邊的圓角圖片

 更新時(shí)間:2021年04月22日 14:42:50   作者:光仔December  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)帶描邊的圓角圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

利用學(xué)過的BitmapShader渲染類,我們來實(shí)現(xiàn)一個(gè)帶描邊的圓角圖片。

具體實(shí)現(xiàn):

用來顯示自定義的繪圖類的布局文件

res/layout/main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:id="@+id/frameLayout1" 
 android:orientation="vertical" 
 > 
 
</FrameLayout> 

打開MainActivity,在文件中創(chuàng)建名為MyView的內(nèi)部類,繼承android.view.View類,并添加構(gòu)造方法和重寫onDraw(Canvas canvas)方法,在里面進(jìn)行作圖:

在onDraw(Canvas canvas)方法中,首先定義一個(gè)畫筆,并設(shè)置其使用抗鋸齒功能,然后定義一張背景,然后定義一個(gè)要繪制的圓角矩形的區(qū)域,并將畫布在X軸上平移40像素,在Y軸上平移20像素,再繪制一個(gè)黑色的2像素的圓角矩形,作為圖片的邊,最后繪制一個(gè)使用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);//繪制一個(gè)描邊的圓角矩形 
  
  paint.setStyle(Style.FILL);//設(shè)置填充樣式為填充 
  Bitmap bm=BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.img1); 
  //創(chuàng)建一個(gè)在水平方向重復(fù),在豎直方向鏡像的BitmapShader對(duì)象 
  BitmapShader bs=new BitmapShader(bm,TileMode.REPEAT,TileMode.MIRROR); 
  paint.setShader(bs);//設(shè)置渲染對(duì)象 
  //繪制一個(gè)使用BitmapShader渲染的圓角矩形圖片 
  canvas.drawRoundRect(rect, 10, 10, paint); 
 } 
 
 
 } 
} 

運(yùn)行效果如圖所示

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論