• 自定义Drawable


    package com.loaderman.customviewdemo;
    
    import android.graphics.*;
    import android.graphics.drawable.Drawable;
    
    
    public class CustomDrawable extends Drawable {
        private Paint mPaint;
        private Bitmap mBitmap;
        private BitmapShader bitmapShader;
        private RectF mBound;
    
        public CustomDrawable(Bitmap bitmap) {
            mBitmap = bitmap;
            mPaint = new Paint();
            mPaint.setAntiAlias(true);
        }
    
        @Override
        public void draw(Canvas canvas) {
            canvas.drawRoundRect(mBound, 20, 20, mPaint);
        }
    
    
        @Override
        public void setAlpha(int alpha) {
            mPaint.setAlpha(alpha);
        }
    
        @Override
        public void setColorFilter(ColorFilter cf) {
            mPaint.setColorFilter(cf);
        }
    
        @Override
        public int getOpacity() {
            return PixelFormat.TRANSLUCENT;//显示模式
        }
    
        @Override
        public void setBounds(int left, int top, int right, int bottom) {
            super.setBounds(left, top, right, bottom);
    
            bitmapShader = new BitmapShader(Bitmap.createScaledBitmap(mBitmap, right - left, bottom - top, true), Shader.TileMode.CLAMP,
                    Shader.TileMode.CLAMP);
            mPaint.setShader(bitmapShader);
            mBound = new RectF(left, top, right, bottom);
        }
    
    //    @Override
    //    public int getIntrinsicWidth() {
    //        return mBitmap.getWidth();
    //    }
    //
    //    @Override
    //    public int getIntrinsicHeight() {
    //        return mBitmap.getHeight();
    //    }
    }
    package com.loaderman.customviewdemo;
    
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class MainActivity extends Activity  {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.avator);
            CustomDrawable drawable = new CustomDrawable(bitmap);
            TextView tv = (TextView) findViewById(R.id.tv);
            tv.setBackgroundDrawable(drawable);
        }
    }

  • 相关阅读:
    LightOJ 1300 边双联通分量+交错路染色
    HDU 6143 快速幂,组合数
    windows 下fc工具
    HDU 6136 模拟
    HDU 6129 暴力,规律
    UVA Live 7770 模拟
    1096: [ZJOI2007]仓库建设
    1191: [HNOI2006]超级英雄Hero
    3224: Tyvj 1728 普通平衡树
    1208: [HNOI2004]宠物收养所
  • 原文地址:https://www.cnblogs.com/loaderman/p/10220567.html
Copyright © 2020-2023  润新知