您的位置:首页 > 移动开发 > Android开发

android 在bitmap或者view上 添加渐变阴影

2013-10-31 18:18 357 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: