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

Android自定義Drawable實(shí)現(xiàn)圓角效果

 更新時(shí)間:2017年08月28日 17:18:46   作者:馬樂(lè)恒  
這篇文章主要為大家詳細(xì)介紹了Android自定義Drawable實(shí)現(xiàn)圓角效果,實(shí)現(xiàn)一個(gè)圓形和圓角的背景圖片效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Drawable是一種可繪制資源的載體,如圖形、圖像等。在實(shí)際開(kāi)發(fā)中可以作為view的背景。主要有靜態(tài)和動(dòng)態(tài)兩種方式,靜態(tài)通過(guò)xml描述使用,動(dòng)態(tài)即自定義Drawable。本文實(shí)現(xiàn)一個(gè)圓形和圓角的背景圖片效果。

效果圖:

實(shí)現(xiàn)方式:

1.初始化一個(gè)BitmapShader著色器對(duì)象;
2.將著色器對(duì)象set給畫(huà)筆;
3.在畫(huà)布上繪制圓或圓角即可;
4.使用,view.setBackgroundDrawable
或者 ImageView.setImageDrawable

package com.mydrawable.musk;

import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Shader;
import android.graphics.drawable.Drawable;

/**
 * Created by musk.
 */

public class CircleDrawable extends Drawable {

 private Paint mPaint;
 private int mWidth;
 private Bitmap mBitmap;

 public CircleDrawable(Bitmap bitmap) {
 mBitmap = bitmap;
 //著色器,設(shè)置橫向和縱向的著色模式為平鋪
 BitmapShader bitmapShader = new BitmapShader(mBitmap,
  Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

 mPaint = new Paint();
 mPaint.setAntiAlias(true);
 mPaint.setDither(true);
 mPaint.setShader(bitmapShader);
 mWidth = Math.min(mBitmap.getWidth(), mBitmap.getHeight());
 }

 //繪制
 @Override
 public void draw(Canvas canvas) {
 canvas.drawCircle(mWidth / 2, mWidth / 2, mWidth / 2, mPaint);
 }

 //設(shè)置透明度值
 @Override
 public void setAlpha(int alpha) {
 mPaint.setAlpha(alpha);
 }

 //設(shè)置顏色過(guò)濾器
 @Override
 public void setColorFilter(ColorFilter colorFilter) {
 mPaint.setColorFilter(colorFilter);
 }

 //返回不透明度
 @Override
 public int getOpacity() {
 return PixelFormat.TRANSLUCENT;
 }

 //返回圖片實(shí)際的寬高
 @Override
 public int getIntrinsicWidth() {
 return mWidth;
 }

 @Override
 public int getIntrinsicHeight() {
 return mWidth;
 }
}

自定義Drawable有五個(gè)方法必須覆寫(xiě),draw()、setAlpha()、setColorFilter()、getOpacity(),另外的getIntrinsicWidth()和getIntrinsicHeight()是在view設(shè)置wrap_content時(shí)設(shè)置drawable的寬度和高度。

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

相關(guān)文章

  • Android仿QQ空間頂部條背景變化效果

    Android仿QQ空間頂部條背景變化效果

    這篇文章主要介紹了Android仿QQ空間頂部條背景變化效果 ,qq空間的這個(gè)頁(yè)面其實(shí)很簡(jiǎn)單,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-04-04
  • android實(shí)現(xiàn)一鍵鎖屏和一鍵卸載的方法實(shí)例

    android實(shí)現(xiàn)一鍵鎖屏和一鍵卸載的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于android如何實(shí)現(xiàn)一鍵鎖屏和一鍵卸載的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-05-05
  • Android中程序的停止?fàn)顟B(tài)詳細(xì)介紹

    Android中程序的停止?fàn)顟B(tài)詳細(xì)介紹

    這篇文章主要介紹了Android中程序的停止?fàn)顟B(tài)詳細(xì)介紹,本文講解了什么是程序的停止?fàn)顟B(tài)、為什么Android要引入這一狀態(tài)、激活狀態(tài)和停止?fàn)顟B(tài)的切換、如何變?yōu)橥V範(fàn)顟B(tài)等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • Android開(kāi)發(fā)解決popupWindow重疊報(bào)錯(cuò)問(wèn)題

    Android開(kāi)發(fā)解決popupWindow重疊報(bào)錯(cuò)問(wèn)題

    今天小編就為大家分享一篇關(guān)于Android開(kāi)發(fā)解決popupWindow重疊報(bào)錯(cuò)問(wèn)題的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Android RecyclerView的刷新分頁(yè)的實(shí)現(xiàn)

    Android RecyclerView的刷新分頁(yè)的實(shí)現(xiàn)

    這篇文章主要介紹了Android RecyclerView的刷新分頁(yè)的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Android編程設(shè)計(jì)模式之抽象工廠模式詳解

    Android編程設(shè)計(jì)模式之抽象工廠模式詳解

    這篇文章主要介紹了Android編程設(shè)計(jì)模式之抽象工廠模式,結(jié)合實(shí)例形式詳細(xì)分析了Android抽象工廠模式的概念、原理、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-12-12
  • Android測(cè)試方法總結(jié)

    Android測(cè)試方法總結(jié)

    在這篇文章中我們給大家總結(jié)了Android測(cè)試方法以及需要注意的地方,有興趣的朋友參考學(xué)習(xí)下。
    2018-07-07
  • Android Compose Column列表不自動(dòng)刷新問(wèn)題

    Android Compose Column列表不自動(dòng)刷新問(wèn)題

    這篇文章主要介紹了Android Compose Column列表數(shù)據(jù)更新列表不刷新的問(wèn)題,總的來(lái)說(shuō)這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過(guò)程。希望通過(guò)這道題能給你帶來(lái)一種解題優(yōu)化的思路
    2023-01-01
  • Android Studio實(shí)現(xiàn)格式化XML代碼順序

    Android Studio實(shí)現(xiàn)格式化XML代碼順序

    這篇文章主要介紹了Android Studio實(shí)現(xiàn)格式化XML代碼順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Kotlin 協(xié)程 supervisorScope {} 運(yùn)行崩潰解決方法

    Kotlin 協(xié)程 supervisorScope {} 運(yùn)行崩潰解決方法

    看過(guò)很多?supervisorScope {}?文檔的使用,我照抄一摸一樣的代碼,運(yùn)行就崩潰,最后找到了解決方法,應(yīng)該是kotlin版本更新做過(guò)改動(dòng),當(dāng)前我使用的是?androidx.core:core-ktx:1.9.0,本文給大家介紹Kotlin 協(xié)程 supervisorScope {} 運(yùn)行崩潰解決方法,感興趣的朋友一起看看吧
    2024-01-01

最新評(píng)論