Android的surface类源码深度剖析(二)

2014-11-24 13:00:14 · 作者: · 浏览: 9
n, 0);
}


public native void setLayer(int zorder);
public native void setPosition(int x, int y);
public native void setSize(int w, int h);


public native void hide();
public native void show();
public native void setTransparentRegionHint(Region region);
public native void setAlpha(float alpha);
public native void setMatrix(float dsdx, float dtdx,
float dsdy, float dtdy);


public native void freeze();
public native void unfreeze();


public native void setFreezeTint(int tint);


public native void setFlags(int flags, int mask);


@Override
public String toString() {
return "Surface(native-token=" + mSurface + ")";
}


private Surface(Parcel source) throws OutOfResourcesException {
init(source);
}

public int describeContents() {
return 0;
}


public native void readFromParcel(Parcel source);
public native void writeToParcel(Parcel dest, int flags);


public static final Parcelable.Creator CREATOR
= new Parcelable.Creator()
{
public Surface createFromParcel(Parcel source) {
try {
return new Surface(source);
} catch (Exception e) {
Log.e(LOG_TAG, "Exception creating surface from parcel", e);
}
return null;
}


public Surface[] newArray(int size) {
return new Surface[size];
}
};


/* no user serviceable parts here ... */
@Override
protected void finalize() throws Throwable {
clear();
}

private native void init(SurfaceSession s,
int pid, int display, int w, int h, int format, int flags)
throws OutOfResourcesException;


private native void init(Parcel source);
}