kartu

Bordered Panel..

Jul 2nd, 2012
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.08 KB | None | 0 0
  1. import android.content.Context;
  2. import android.graphics.Bitmap;
  3. import android.graphics.BlurMaskFilter;
  4. import android.graphics.Canvas;
  5. import android.graphics.Color;
  6. import android.graphics.Paint;
  7. import android.graphics.RectF;
  8. import android.graphics.Paint.Style;
  9. import android.util.AttributeSet;
  10. import android.widget.LinearLayout;
  11.  
  12. public class TransparentPanel extends LinearLayout
  13. {
  14.      private Paint   innerPaint, borderPaint ;
  15.    
  16.      public TransparentPanel(Context context, AttributeSet attrs) {
  17.           super(context, attrs);
  18.           init();
  19.      }
  20.  
  21.      public TransparentPanel(Context context) {
  22.           super(context);
  23.           init();
  24.      }
  25.  
  26.      private void init() {
  27.            
  28.          innerPaint = new Paint();
  29.          innerPaint.setARGB(175, 0, 0, 0); //gray 75 75 75
  30.          innerPaint.setAntiAlias(true);
  31.  
  32.          borderPaint = new Paint();
  33.          borderPaint.setARGB(150, 0, 0, 0);
  34.          borderPaint.setAntiAlias(true);
  35.          borderPaint.setStyle(Style.STROKE);
  36.          borderPaint.setStrokeWidth(1);
  37.      }
  38.        
  39.      public void setInnerPaint(Paint innerPaint) {
  40.                 //this.innerPaint = innerPaint;
  41.      }
  42.  
  43.      public void setBorderPaint(Paint borderPaint) {
  44.                 //this.borderPaint = borderPaint;
  45.      }
  46.  
  47.     @Override
  48.     protected void dispatchDraw(Canvas canvas) {
  49.        /*
  50.         RectF drawRect = new RectF();
  51.         drawRect.set(0,0, getMeasuredWidth(), getMeasuredHeight());
  52.        
  53.         canvas.drawRoundRect(drawRect, 5, 5, innerPaint);
  54.                 canvas.drawRoundRect(drawRect, 5, 5, borderPaint);
  55.         */
  56.        
  57.         Bitmap myCanvasBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
  58.         Canvas myCanvas = new Canvas(myCanvasBitmap);
  59.          //canvas=new Canvas(myCanvasBitmap);
  60.          Paint mShadow = new Paint(Paint.ANTI_ALIAS_FLAG);
  61.          mShadow.setColor(Color.RED);
  62.          //mShadow.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
  63.          mShadow.setStrokeWidth(2);
  64.        
  65.          mShadow.setStyle(Style.STROKE);
  66.          //Log.i("width and height ", (int)(w-(w/13))+" "+(int)(h-(h/20)));
  67.          //myCanvas.drawRoundRect(new RectF(3,3,(int)(w-(w*0.125)), (int)(h-(h*0.17708))), 10, 10 , mShadow);
  68.          
  69.          myCanvas.drawRoundRect(new RectF(15, 15, (int) getMeasuredWidth()-15, (int) getMeasuredHeight()-15), 10, 10 , mShadow);
  70.          
  71.          BlurMaskFilter blurMaskFilter;
  72.            
  73.          //Create background in White
  74.          Bitmap alpha=myCanvasBitmap.extractAlpha(mShadow,new int[] {20,20});
  75.          mShadow.setColor(Color.YELLOW);
  76.          canvas.drawBitmap(alpha, 20, 20, mShadow);
  77.            
  78.          int blurValue= 3;
  79.          //Create outer blur, in White
  80.          blurMaskFilter = new BlurMaskFilter(blurValue, BlurMaskFilter.Blur.OUTER);
  81.          mShadow.setMaskFilter(blurMaskFilter);
  82.          canvas.drawBitmap(alpha, 20, 20, mShadow);
  83.              
  84.          //Create inner blur
  85.          blurMaskFilter = new BlurMaskFilter(blurValue, BlurMaskFilter.Blur.INNER);
  86.          mShadow.setMaskFilter(blurMaskFilter);
  87.          canvas.drawBitmap(myCanvasBitmap, 20, 20, mShadow);
  88.          
  89.         super.dispatchDraw(canvas);
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment