关于android中的.9图(二)——利用java代码引用设置.9图

开发中,一般都会用到.9.png格式的图片(如果不知道如何画,请看我上篇博文关于android中的.9图(一)——如何画.9图),一般的使用都是在XML布局文件当中直接引用,但是有些情况,比如要自己定义一个view,里面需要画个什么形状,然后使用一张9图去填充这个形状,这时候就可以用到9图了,当然,看我这个demo很简单或许有人会说不用这么麻烦,但我这里的point在于如何用java代码设置9图。


比如说,抠门的设计师给了你如下一张切图,注意!!是中间那个小黑点骂人骂人


好啦,要你自定义一个view,view中有一个方形,把这个9图作为背景。那么现在就可以这样做,直接上代码了:

package com.test;


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.NinePatch;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

import com.kroc.volleydemo.R;

public class MyView extends View {

	private NinePatch mNinePatch;//画9图的
	private Paint mPaint;//画笔
	private Rect mRect;//矩形
	private Bitmap mBitmap;//bitmap,引入9图
	
	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		mRect = new Rect(100, 100, 450, 450);
		mBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_black_bg);
		mNinePatch = new NinePatch(mBitmap, mBitmap.getNinePatchChunk(), null);
	}
	
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mPaint = new Paint();
		mPaint.setColor(Color.WHITE);
		mNinePatch.draw(canvas, mRect, mPaint);
	}

}


代码可以看出,继承了view之后重写onDraw方法对界面进行重绘,在构造函数当中对矩形、bitmap等进行初始化,这样简简单单就可以将9图画上去了,看下效果图,对了那块黑不溜秋的就是要的效果,这样的话,要多大的矩形只要修改上面初始化的那个矩形参数就行了,不需要抠门射鸡师切图哈哈~~以后还会有文章介绍到这种方法的应用,比如画引导界面啊等等~~很灵活哟



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值