国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現帶描邊的圓角圖片

2019-12-12 01:24:18
字體:
來源:轉載
供稿:網友

利用學過的BitmapShader渲染類,我們來實現一個帶描邊的圓角圖片。

具體實現:

用來顯示自定義的繪圖類的布局文件
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,在文件中創建名為MyView的內部類,繼承android.view.View類,并添加構造方法和重寫onDraw(Canvas canvas)方法,在里面進行作圖:

在onDraw(Canvas canvas)方法中,首先定義一個畫筆,并設置其使用抗鋸齒功能,然后定義一張背景,然后定義一個要繪制的圓角矩形的區域,并將畫布在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);//設置填充樣式為描邊   paint.setColor(Color.BLACK);//設置顏色為黑色   paint.setStrokeWidth(2);//設置筆觸寬度為2像素   canvas.drawRoundRect(rect, 10, 10, paint);//繪制一個描邊的圓角矩形     paint.setStyle(Style.FILL);//設置填充樣式為填充   Bitmap bm=BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.img1);   //創建一個在水平方向重復,在豎直方向鏡像的BitmapShader對象   BitmapShader bs=new BitmapShader(bm,TileMode.REPEAT,TileMode.MIRROR);   paint.setShader(bs);//設置渲染對象   //繪制一個使用BitmapShader渲染的圓角矩形圖片   canvas.drawRoundRect(rect, 10, 10, paint);  }    } } 

運行效果如圖所示

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴南区| 车致| 吴堡县| 抚远县| 韶山市| 花莲市| 阿拉尔市| 观塘区| 华宁县| 图木舒克市| 陇南市| 德江县| 叶城县| 商城县| 界首市| 盘山县| 大兴区| 同仁县| 淅川县| 阿拉善右旗| 安义县| 元氏县| 桐庐县| 会理县| 吴桥县| 石门县| 潢川县| 永丰县| 于都县| 西丰县| 泰安市| 蕲春县| 永顺县| 介休市| 南和县| 新龙县| 崇文区| 三原县| 兴和县| 屏边| 台南县|