Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f19789b authored by Geoff Mendal's avatar Geoff Mendal
Browse files

Don't double count the left/top when using bitmap cache in VectorDrawable.

bug:16861184

Change-Id: I0530602957a434b222725b6fcbc1af165ee05835

Merge commit 'refs/changes/18/520718/4' of persistent-https://googleplex-android.git.corp.google.com/platform/frameworks/base into lmp-dev
parents 61da0fdf 66613415
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -268,7 +268,8 @@ public class VectorDrawable extends Drawable {

                mVectorState.updateCacheStates();
            }
            canvas.drawBitmap(bitmap, null, bounds, null);
            // The bitmap's size is the same as the bounds.
            canvas.drawBitmap(bitmap, 0, 0, null);
        }

        canvas.restoreToCount(saveCount);
+9 −0
Original line number Diff line number Diff line
@@ -131,6 +131,15 @@
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.android.test.dynamic.TEST" />
            </intent-filter>
        </activity>
        <activity
            android:name="BoundsCheckTest"
            android:label="SetBound check" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.android.test.dynamic.TEST" />
            </intent-filter>
        </activity>
+2 −1
Original line number Diff line number Diff line
@@ -16,7 +16,8 @@
            android:width="64dp"
            android:height="64dp"
            android:viewportWidth="7.30625"
            android:viewportHeight="12.25">
            android:viewportHeight="12.25"
            android:autoMirrored="true">

    <group>
        <clip-path
+2 −1
Original line number Diff line number Diff line
@@ -17,7 +17,8 @@
    android:height="64dp"
    android:viewportHeight="200"
    android:viewportWidth="200"
    android:width="64dp" >
    android:width="64dp"
    android:autoMirrored="true" >

    <group>
        <path
+57 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.test.dynamic;

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.VectorDrawable;
import android.os.Bundle;
import android.view.View;

public class BoundsCheckTest extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final BitmapsView view = new BitmapsView(this);
        setContentView(view);
    }

    static class BitmapsView extends View {
        private final BitmapDrawable mBitmap1;
        private final VectorDrawable mVector1;

        BitmapsView(Context c) {
            super(c);
            Resources res = c.getResources();
            mBitmap1 = (BitmapDrawable) res.getDrawable(R.drawable.icon);
            mVector1 = (VectorDrawable) res.getDrawable(R.drawable.vector_drawable28);
        }

        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            mBitmap1.setBounds(100, 100, 400, 400);
            mBitmap1.draw(canvas);

            mVector1.setBounds(100, 100, 400, 400);
            mVector1.draw(canvas);
        }
    }
}
 No newline at end of file