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

首頁 > 系統(tǒng) > Android > 正文

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

2019-10-22 18:18:41
字體:
來源:轉載
供稿:網(wǎng)友

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

具體實現(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的內部類,繼承android.view.View類,并添加構造方法和重寫onDraw(Canvas canvas)方法,在里面進行作圖:

在onDraw(Canvas canvas)方法中,首先定義一個畫筆,并設置其使用抗鋸齒功能,然后定義一張背景,然后定義一個要繪制的圓角矩形的區(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);//設置填充樣式為描邊   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);   //創(chuàng)建一個在水平方向重復,在豎直方向鏡像的BitmapShader對象   BitmapShader bs=new BitmapShader(bm,TileMode.REPEAT,TileMode.MIRROR);   paint.setShader(bs);//設置渲染對象   //繪制一個使用BitmapShader渲染的圓角矩形圖片   canvas.drawRoundRect(rect, 10, 10, paint);  }    } } 

運行效果如圖所示

Android,描邊,圓角圖片,Android圓角圖片,Android圓角

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


注:相關教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 房山区| 确山县| 徐州市| 麻阳| 深泽县| 武夷山市| 巩义市| 巴塘县| 杂多县| 株洲市| 会东县| 荔浦县| 合山市| 微山县| 霍城县| 周口市| 富裕县| 镇安县| 大石桥市| 民县| 昆明市| 东宁县| 灵川县| 合作市| 开封县| 南部县| 沿河| 灵武市| 刚察县| 原阳县| 衡东县| 吉林市| 即墨市| 寿宁县| 额济纳旗| 永康市| 泌阳县| 普陀区| 庆安县| 江都市| 凤庆县|