diff options
author | 2010-04-22 16:07:49 +0000 | |
---|---|---|
committer | 2010-04-22 16:07:49 +0000 | |
commit | 7d970c739d44486d3382eed8acc4eecccecf3453 (patch) | |
tree | c39742a2d2f56449619038a1a4e9f8e5716edebe /samplecode/SampleNinePatch.cpp | |
parent | 5f6a0762f14f73859e60f0e8339ca133d10e4d3c (diff) |
updates
git-svn-id: http://skia.googlecode.com/svn/trunk@558 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SampleNinePatch.cpp')
-rw-r--r-- | samplecode/SampleNinePatch.cpp | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/samplecode/SampleNinePatch.cpp b/samplecode/SampleNinePatch.cpp index 941b3ff4d0..99c337b28d 100644 --- a/samplecode/SampleNinePatch.cpp +++ b/samplecode/SampleNinePatch.cpp @@ -11,7 +11,7 @@ public: SkBitmap fBM; NinePatchView() { - SkImageDecoder::DecodeFile("/skimages/folder_background.9.png", &fBM); + SkImageDecoder::DecodeFile("/skimages/btn_default_normal_disable.9.png", &fBM); // trim off the edge guide-lines SkBitmap tmp; @@ -35,13 +35,44 @@ protected: } void drawBG(SkCanvas* canvas) { - canvas->drawColor(SK_ColorWHITE); + SkPaint p; + p.setDither(true); + p.setColor(0xFF909090); + canvas->drawPaint(p); } - + + static void test_rects(SkCanvas* canvas, const SkBitmap& bm, const SkPaint* paint) { + static const SkIRect src[] = { + { 0, 0, 18, 34 }, + { 18, 0, 19, 34 }, + { 19, 0, 36, 34 }, + { 0, 34, 18, 35 }, + { 18, 34, 19, 35 }, + { 19, 34, 36, 35 }, + { 0, 35, 18, 72 }, + { 18, 35, 19, 72 }, + { 19, 35, 36, 72 }, + }; + static const SkRect dst[] = { + { 0, 0, 18, 34 }, + { 18, 0, 283, 34 }, + { 283, 0, 300, 34 }, + { 0, 34, 18, 163 }, + { 18, 34, 283, 163 }, + { 283, 34, 300, 163 }, + { 0, 163, 18, 200 }, + { 18, 163, 283, 200 }, + { 283, 163, 300, 200 }, + }; + for (size_t i = 0; i < SK_ARRAY_COUNT(src); i++) { + canvas->drawBitmapRect(bm, &src[i], dst[i], paint); + } + } + virtual void onDraw(SkCanvas* canvas) { this->drawBG(canvas); - canvas->scale(1.5f, 1.5f); + // canvas->scale(1.5f, 1.5f); canvas->drawBitmap(fBM, 0, 0); @@ -50,15 +81,28 @@ protected: int d = 25; margins.set(d, d, d, d); + margins.fLeft = fBM.width()/2 - 1; + margins.fTop = fBM.height()/2 - 1; + margins.fRight = fBM.width() - margins.fLeft - 1; + margins.fBottom = fBM.height() - margins.fTop - 1; + + // canvas->translate(fX/5, fY/5); + canvas->translate(0, 76); + dst.set(0, 0, SkIntToScalar(200), SkIntToScalar(200)); - dst.offset(fX, fY); - SkNinePatch::DrawNine(canvas, dst, fBM, margins); + SkPaint paint; + paint.setAntiAlias(false); + paint.setDither(true); + paint.setFilterBitmap(false); + // SkNinePatch::DrawNine(canvas, dst, fBM, margins, &paint); + test_rects(canvas, fBM, &paint); } virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) { fX = x / 1.5f; fY = y / 1.5f; + fX = x; fY = y; this->inval(NULL); return this->INHERITED::onFindClickHandler(x, y); } |