最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

利用學過的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設備之間通過Wifi通信的示例代碼

    Android設備之間通過Wifi通信的示例代碼

    本篇文章主要介紹了Android設備之間通過Wifi通信的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Android利用Intent啟動和關閉Activity

    Android利用Intent啟動和關閉Activity

    這篇文章主要為大家詳細介紹了Android利用Intent啟動和關閉Activity的相關操作,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android實現(xiàn)單行標簽流式布局

    Android實現(xiàn)單行標簽流式布局

    這篇文章主要為大家詳細介紹了Android單行標簽流式布局,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Android源碼導入Eclipse步驟詳解

    Android源碼導入Eclipse步驟詳解

    在本文中我們給大家詳細講述了Android源碼導入Eclipse的步驟和具體方法,需要的朋友們跟著學習下。
    2019-03-03
  • Android Parcelable與Serializable詳解及區(qū)別

    Android Parcelable與Serializable詳解及區(qū)別

    這篇文章主要介紹了Android Parcelable與Serializable詳解及區(qū)別的相關資料,需要的朋友可以參考下
    2017-01-01
  • Flutter基本組件Basics?Widget學習

    Flutter基本組件Basics?Widget學習

    本文詳細講解了Flutter基本組件Basics?Widget,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Android ImageLoader第三方框架解析

    Android ImageLoader第三方框架解析

    這篇文章主要為大家詳細解析了Android ImageLoader第三方框架,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android ViewDragHelper使用方法詳解

    Android ViewDragHelper使用方法詳解

    這篇文章主要為大家詳細介紹了Android ViewDragHelper的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android ViewModel與Lifecycles和LiveData組件用法詳細講解

    Android ViewModel與Lifecycles和LiveData組件用法詳細講解

    JetPack是一個開發(fā)組件工具集,他的主要目的是幫助我們編寫出更加簡潔的代碼,并簡化我們的開發(fā)過程。JetPack中的組件有一個特點,它們大部分不依賴于任何Android系統(tǒng)版本,這意味者這些組件通常是定義在AndroidX庫當中的,并且擁有非常好的向下兼容性
    2023-01-01
  • android?studio數(shù)據(jù)存儲建立SQLite數(shù)據(jù)庫實現(xiàn)增刪查改

    android?studio數(shù)據(jù)存儲建立SQLite數(shù)據(jù)庫實現(xiàn)增刪查改

    這篇文章主要介紹了vandroid?studio數(shù)據(jù)存儲建立SQLite數(shù)據(jù)庫實現(xiàn)增刪查改,分別使用sqlite3工具和Android代碼的方式建立SQLite數(shù)據(jù)庫,具體內容,需要的小伙伴可以參考下面文章得詳細內容
    2021-12-12

最新評論

固原市| 资阳市| 绍兴县| 南汇区| 那坡县| 津南区| 汪清县| 六安市| 福安市| 汝南县| 赣榆县| 祁阳县| 拜城县| 疏勒县| 孝义市| 绍兴县| 泰州市| 牙克石市| 楚雄市| 永春县| 遂溪县| 南昌县| 林州市| 右玉县| 东城区| 丹阳市| 新巴尔虎右旗| 钟祥市| 荃湾区| 宣武区| 隆昌县| 临洮县| 临高县| 通州区| 房产| 淮滨县| 肥东县| 社会| 新闻| 天长市| 舒城县|