android bitmapまたはviewにグラデーションシャドウを追加

1536 ワード

public class MainActivity extends Activity {


    private GradientDrawable mBackShadowDrawableLR;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ImageView imageView = new ImageView(this);
        Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher).copy(Bitmap.Config.ARGB_8888, true);
        addShadow(bm);
        imageView.setImageBitmap(bm);
        setContentView(imageView);
    }
    public Bitmap addShadow(Bitmap bm) {
        int[] mBackShadowColors = new int[] { 0x00000000 , 0xB0AAAAAA};
        mBackShadowDrawableLR = new GradientDrawable(
                GradientDrawable.Orientation.LEFT_RIGHT, mBackShadowColors);
        mBackShadowDrawableLR.setGradientType(GradientDrawable.LINEAR_GRADIENT);
        mBackShadowDrawableLR.setBounds(0, 0, 20 , bm.getHeight());
        Canvas canvas = new Canvas(bm);
        mBackShadowDrawableLR.draw(canvas);
        return bm;
    }
}
//         
	        int[] mBackShadowColors = new int[] { mFromColor , mToColor};
	        //    
	        mBackShadowDrawableLR = new GradientDrawable(
	                GradientDrawable.Orientation.LEFT_RIGHT, mBackShadowColors);
	        mShadowWidth = mTheme.getDimen(R.dimen.novel_reader_page_shadowwidth);
	        //           
	        mBackShadowDrawableLR.setBounds(fromx, 0, (int) (fromx + mShadowWidth) , height);
	        //   canvas
	        mBackShadowDrawableLR.draw(canvas);