當前位置: 首頁>>代碼示例>>Java>>正文


Java TileMode.MIRROR屬性代碼示例

本文整理匯總了Java中android.graphics.Shader.TileMode.MIRROR屬性的典型用法代碼示例。如果您正苦於以下問題:Java TileMode.MIRROR屬性的具體用法?Java TileMode.MIRROR怎麽用?Java TileMode.MIRROR使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在android.graphics.Shader.TileMode的用法示例。


在下文中一共展示了TileMode.MIRROR屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: createReflectedImage

/**
 * 全倒影
 * 
 * @param originalImage
 * @return
 */
public static Bitmap createReflectedImage(Bitmap originalImage, int imageHeight) {
	int width = originalImage.getWidth();
	int height = originalImage.getHeight();
	Matrix matrix = new Matrix();
	matrix.preScale(1, -1);
	Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height - imageHeight, width, imageHeight, matrix, false);
	Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + imageHeight), Config.ARGB_8888);
	Canvas canvas = new Canvas(bitmapWithReflection);
	Paint defaultpPaint = new Paint();
	canvas.drawBitmap(originalImage, 0, 0, defaultpPaint);
	canvas.drawBitmap(reflectionImage, 0, height, defaultpPaint);
	Paint paint = new Paint();
	LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight(), 0x70ffffff, 0x00ffffff, TileMode.MIRROR);
	paint.setShader(shader);
	paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
	canvas.drawRect(0, height, width, bitmapWithReflection.getHeight(), paint);
	reflectionImage.recycle();
	return bitmapWithReflection;
}
 
開發者ID:imknown,項目名稱:IMKBaseFrameworkLibrary,代碼行數:25,代碼來源:Reflect3DImage.java

示例2: LinearGradientView

public LinearGradientView(Context context) {
	super(context);
	// ��һ�ڶ���������ʾ������㣬���������ڶԽǵ�����λ�ã��������ĸ�������ʾ�����յ㣻�����������ʾ������ɫ��
	// ��������������Ϊ�գ���ʾ����ֵΪ0-1 new float[] {0.25f, 0.5f, 0.75f, 1 }  ���Ϊ�գ���ɫ���ȷֲ������ݶ��ߡ�
	mLinearGradient11 = new LinearGradient(0, 0, 0, 200, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.BLACK }, null, TileMode.CLAMP);
	mLinearGradient12 = new LinearGradient(0, 0, 0, 300, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.BLACK }, new float[] { 0, 0.1f, 0.5f, 0.5f }, TileMode.CLAMP);
	mLinearGradient13 = new LinearGradient(0, 0, 0, 400, new int[] { Color.RED, Color.GREEN, Color.BLUE }, null, TileMode.CLAMP);

	mLinearGradient21 = new LinearGradient(0, 320, 0, 320 + 200, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.BLACK }, null, TileMode.MIRROR);
	mLinearGradient22 = new LinearGradient(0, 320, 0, 320 + 100, new int[] { Color.RED, Color.GREEN, Color.BLUE }, null, TileMode.MIRROR);
	mLinearGradient23 = new LinearGradient(0, 320, 0, 320 + 100, new int[] { Color.RED, Color.GREEN, Color.BLUE }, new float[] { 0, 0.1f, 0.5f }, TileMode.MIRROR);

	mLinearGradient31 = new LinearGradient(0, 640, 0, 640 + 200, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.BLACK }, null, TileMode.REPEAT);
	mLinearGradient32 = new LinearGradient(0, 640, 0, 640 + 100, new int[] { Color.RED, Color.GREEN, Color.BLUE }, null, TileMode.REPEAT);
	mLinearGradient33 = new LinearGradient(0, 640, 0, 640 + 100, new int[] { Color.RED, Color.GREEN, Color.BLUE }, new float[] { 0, 0.1f, 0.5f }, TileMode.REPEAT);
	mPaint = new Paint();
}
 
開發者ID:baiqiantao,項目名稱:MyViews,代碼行數:17,代碼來源:LinearGradientView.java

示例3: onLayout

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom)
{
    super.onLayout(changed, left, top, right, bottom);
    
    int width = getWidth();
    int height = getHeight();

    mRectF.left = 0;
    mRectF.top = 0;
    mRectF.right = width;
    mRectF.bottom = height;
    
    if (mShaderV == null)
    {
        mShaderV = new LinearGradient(0, mRectF.top, 0, mRectF.bottom, mColorsV, null, TileMode.MIRROR);
        mPaintV.setShader(mShaderV);
    }
    if (mShaderH == null)
    {
        mShaderH = new LinearGradient(mRectF.left, 0, mRectF.right, 0, mColorsH, mPositionsH, TileMode.MIRROR);
        mPaintH.setShader(mShaderH);
    }
}
 
開發者ID:EspressifApp,項目名稱:IOT-Espressif-Android,代碼行數:24,代碼來源:EspColorPicker.java

示例4: drawMask

/**
 * 繪製遮蓋板
 * 
 * @param canvas
 */
private void drawMask(Canvas canvas) {
	LinearGradient lg = new LinearGradient(0, 0, 0, maskHight, 0x00f2f2f2,
			0x00f2f2f2, TileMode.MIRROR);
	Paint paint = new Paint();
	paint.setShader(lg);
	canvas.drawRect(0, 0, controlWidth, maskHight, paint);

	LinearGradient lg2 = new LinearGradient(0, controlHeight - maskHight,
			0, controlHeight, 0x00f2f2f2, 0x00f2f2f2, TileMode.MIRROR);
	Paint paint2 = new Paint();
	paint2.setShader(lg2);
	canvas.drawRect(0, controlHeight - maskHight, controlWidth,
			controlHeight, paint2);

}
 
開發者ID:poomoo,項目名稱:eDao,代碼行數:20,代碼來源:ScrollerNumberPicker.java

示例5: drawMask

/**
 * 繪製遮蓋板
 *
 * @param canvas
 */
private void drawMask(Canvas canvas) {
    LinearGradient lg = new LinearGradient(0, 0, 0, maskHight, 0x00f2f2f2,
            0x00f2f2f2, TileMode.MIRROR);
    Paint paint = new Paint();
    paint.setShader(lg);
    canvas.drawRect(0, 0, controlWidth, maskHight, paint);

    LinearGradient lg2 = new LinearGradient(0, controlHeight - maskHight,
            0, controlHeight, 0x00f2f2f2, 0x00f2f2f2, TileMode.MIRROR);
    Paint paint2 = new Paint();
    paint2.setShader(lg2);
    canvas.drawRect(0, controlHeight - maskHight, controlWidth,
            controlHeight, paint2);
}
 
開發者ID:abook23,項目名稱:godlibrary,代碼行數:19,代碼來源:WheelView.java

示例6: parseTileMode

private static TileMode parseTileMode(int tileMode) {
    switch (tileMode) {
        case 0:
            return TileMode.CLAMP;
        case 1:
            return TileMode.REPEAT;
        case 2:
            return TileMode.MIRROR;
        default:
            return null;
    }
}
 
開發者ID:JackChan1999,項目名稱:letv,代碼行數:12,代碼來源:RoundedImageView.java

示例7: createReflectedImage

/**
 * 圖片創建倒影 TODO(這裏用一句話描述這個方法的作用)
 * 
 * @author 2013-10-12 下午3:58:39
 * @param originalImage
 * @param number
 * @return Bitmap
 */
public static Bitmap createReflectedImage(Bitmap originalImage, int number)
{
    final int reflectionGap = 0; // 倒影和原圖片間的距離
    int width = originalImage.getWidth();
    int height = originalImage.getHeight();
    
    Matrix matrix = new Matrix();
    matrix.preScale(1, -1);
    
    double reflectHeight = number / 100.00;
    
    number = (int)(height * reflectHeight);
    // 倒影部分
    Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, number, width, number, matrix, false);
    // 要返回的倒影圖片
    Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + number), Config.ARGB_8888);
    
    Canvas canvas = new Canvas(bitmapWithReflection);
    // 畫原來的圖片
    canvas.drawBitmap(originalImage, 0, 0, null);
    
    // Paint defaultPaint = new Paint();
    // //倒影和原圖片間的距離
    // canvas.drawRect(0, height, width, height + reflectionGap,
    // defaultPaint);
    // 畫倒影部分
    canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
    
    Paint paint = new Paint();
    LinearGradient shader =
        new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap,
            0x70ffffff, 0x00ffffff, TileMode.MIRROR);
    paint.setShader(shader);
    paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
    canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint);
    return bitmapWithReflection;
}
 
開發者ID:zhuyu1022,項目名稱:amap,代碼行數:45,代碼來源:MIP_BitmapUtils.java

示例8: createReflectedImage

/**
 * 倒影圖片
 * @param originalBitmap
 * @return
 */
public static Bitmap createReflectedImage(Bitmap originalBitmap) {
    final int reflectionGap = 4;
    int width = originalBitmap.getWidth();
    int height = originalBitmap.getHeight();
    Matrix matrix = new Matrix();
    matrix.preScale(1, -1);
    Bitmap reflectionBitmap = Bitmap.createBitmap(originalBitmap, 0,
            height / 2, width, height / 2, matrix, false);
    Bitmap withReflectionBitmap = Bitmap.createBitmap(width, (height
            + height / 2 + reflectionGap), Config.ARGB_8888);
    Canvas canvas = new Canvas(withReflectionBitmap);
    canvas.drawBitmap(originalBitmap, 0, 0, null);
    Paint defaultPaint = new Paint();
    canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
    canvas.drawBitmap(reflectionBitmap, 0, height + reflectionGap, null);

    Paint paint = new Paint();
    LinearGradient shader = new LinearGradient(0,
            originalBitmap.getHeight(), 0,
            withReflectionBitmap.getHeight(), 0x70ffffff, 0x00ffffff,
            TileMode.MIRROR);
    paint.setShader(shader);
    paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

    canvas.drawRect(0, height, width, withReflectionBitmap.getHeight(),
            paint);

    return withReflectionBitmap;
}
 
開發者ID:Evan-Galvin,項目名稱:FreeStreams-TVLauncher,代碼行數:34,代碼來源:ImageTools.java

示例9: onSizeChanged

@Override
protected void onSizeChanged(int new_x, int new_y, int old_x, int old_y)
{
	super.onSizeChanged(new_x, new_y, old_x, old_y);
	
	float center_x = getMeasuredWidth() / 2.0F;
	float center_y = getMeasuredHeight()/ 2.0F;
	float radius   = Math.min(center_x, center_y);
	shader_y = new RadialGradient(center_x, center_y, radius, Color.TRANSPARENT, Color.BLACK, TileMode.MIRROR);
}
 
開發者ID:KAlO2,項目名稱:PerfectShow,代碼行數:10,代碼來源:ColorPickerCircle.java

示例10: createReflectedImage

/**
 * 網上找的方法,實現圖片倒影效果
 * 
 * @param originalImage
 * @return
 */
public Bitmap createReflectedImage(Bitmap originalImage)
{
	int width = originalImage.getWidth();
	int height = originalImage.getHeight();
	Matrix matrix = new Matrix();
	// 實現圖片翻轉90度
	matrix.preScale(1, -1);
	// 創建倒影圖片(是原始圖片的一半大小)
	Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height / 2, width, height / 2, matrix, false);
	// 創建總圖片(原圖片 + 倒影圖片)
	Bitmap finalReflection = Bitmap.createBitmap(width, (height + height / 2), Config.ARGB_8888);
	// 創建畫布
	Canvas canvas = new Canvas(finalReflection);
	canvas.drawBitmap(originalImage, 0, 0, null);
	//把倒影圖片畫到畫布上
	canvas.drawBitmap(reflectionImage, 0, height + 5, null);
	Paint shaderPaint = new Paint();
	//創建線性漸變LinearGradient對象
	LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, finalReflection.getHeight() + 5, 0x70ffffff,
			0x00ffffff, TileMode.MIRROR);
	shaderPaint.setShader(shader);
	shaderPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
	//畫布畫出反轉圖片大小區域,然後把漸變效果加到其中,就出現了圖片的倒影效果。
	canvas.drawRect(0, height + 1, width, finalReflection.getHeight() + 5, shaderPaint);
	return finalReflection;
}
 
開發者ID:pengbing92,項目名稱:MyMusicPlayer,代碼行數:32,代碼來源:AlbumFragment.java

示例11: createReflectedImage

public static Bitmap createReflectedImage(Bitmap originalImage) {
	final int reflectionGap = 4;  //倒影和原圖片間的距離  
	int width = originalImage.getWidth();
	int height = originalImage.getHeight();

	Matrix matrix = new Matrix();
	matrix.preScale(1, -1);

	//倒影部分  
	Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height / 2, width, height / 2, matrix, false);
	//要返回的倒影圖片  
	Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 2), Config.ARGB_8888);

	Canvas canvas = new Canvas(bitmapWithReflection);
	//畫原來的圖片  
	canvas.drawBitmap(originalImage, 0, 0, null);

	Paint defaultPaint = new Paint();
	//倒影和原圖片間的距離  
	canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
	//畫倒影部分  
	canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);

	Paint paint = new Paint();
	LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.MIRROR);
	paint.setShader(shader);
	paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
	canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint);
	return bitmapWithReflection;
}
 
開發者ID:tengbinlive,項目名稱:info_demo,代碼行數:30,代碼來源:BitmapUtils.java

示例12: drawAxisHandler

public void drawAxisHandler(Canvas canvas)
{
    if (minValue == maxValue)
    {
        minValue = minValue * 0.5;
        maxValue = maxValue * 1.5;
    }
    if (minorTicks == MathHelper.NULL_VALUE)
    {
        minorTicks = (maxValue - minValue) / (interval * multipleSpacer);
    }
    if (majorTicks == MathHelper.NULL_VALUE)
    {
        majorTicks = (maxValue - minValue) / interval;
    }
    paint.setAntiAlias(true);
    float shortRadius = radius * .9f;
    float longRadius = radius * 1.05f;
    paint.setColor(0xffA2D87F);
    paint.setStyle(Style.STROKE);
    paint.setStrokeWidth(10);
    canvas.drawArc(oval, maxAngle, 360, true, paint);
    paint.setStyle(Style.FILL);
    Shader gradient =
                new RadialGradient(centerX, centerY, shortRadius, gradientColors[0], gradientColors[1],
                            TileMode.MIRROR);
    paint.setShader(gradient);
    oval.left = oval.left + 6;
    oval.top = oval.top + 6;
    oval.right = oval.right - 6;
    oval.bottom = oval.bottom - 6;
    canvas.drawArc(oval, maxAngle, 360, true, paint);
    paint.setShader(null);
    paint.setColor(Color.RED);
    paint.setStyle(Style.FILL);
    paint.setStrokeWidth(2);
    drawTicks(canvas, longRadius, radius, minorTicks, false);
    drawTicks(canvas, longRadius, shortRadius, majorTicks, true);

}
 
開發者ID:vniu,項目名稱:Android-SmartChart,代碼行數:40,代碼來源:DialAxis.java

示例13: SlideView

public SlideView(Context context, AttributeSet attrs) {
    super(context, attrs);
    ViewConfiguration configuration = ViewConfiguration.get(context);
    mMaxVelocity = configuration.getScaledMaximumFlingVelocity();
    mInterpolator = new AccelerateDecelerateInterpolator();
    mDensity = getResources().getDisplayMetrics().density;
    setClickable(true);
    setFocusable(true);
    setFocusableInTouchMode(true);

    TypedArray typeArray = context.obtainStyledAttributes(attrs, R.styleable.SlideView);
    mText = typeArray.getString(R.styleable.SlideView_maskText);
    mTextSize = typeArray.getDimensionPixelSize(R.styleable.SlideView_maskTextSize, R.dimen.mask_text_size);
    mTextLeft = typeArray.getDimensionPixelSize(R.styleable.SlideView_maskTextMarginLeft, R.dimen.mask_text_margin_left);
    mTextTop = typeArray.getDimensionPixelSize(R.styleable.SlideView_maskTextMarginTop, R.dimen.mask_text_margin_top);

    mSlider = typeArray.getResourceId(R.styleable.SlideView_slider, R.mipmap.app_icon);
    mSliderLeft = typeArray.getDimensionPixelSize(R.styleable.SlideView_sliderMarginLeft, R.dimen.slider_margin_left);
    mSliderTop = typeArray.getDimensionPixelSize(R.styleable.SlideView_sliderMarginTop, R.dimen.slider_margin_top);
    mSliderBitmap = BitmapFactory.decodeResource(getResources(), mSlider);
    mSliderRect = new Rect(mSliderLeft, mSliderTop, mSliderLeft + mSliderBitmap.getWidth(), mSliderTop + mSliderBitmap.getHeight());

    mSlidableLength = typeArray.getDimensionPixelSize(R.styleable.SlideView_slidableLength, R.dimen.slidable_length);
    mEffectiveLength = typeArray.getDimensionPixelSize(R.styleable.SlideView_effectiveLength,
            R.dimen.effective_length);
    mEffectiveVelocity = typeArray.getDimensionPixelSize(R.styleable.SlideView_effectiveVelocity,
            R.dimen.effective_velocity);
    typeArray.recycle();

    mGradientColors = new int[]{Color.argb(255, 120, 120, 120), Color.argb(255, 120, 120, 120), Color.argb(255, 255, 255, 255)};
    mGradient = new LinearGradient(0, 0, 100 * mDensity, 0, mGradientColors, new float[]{0, 0.7f, 1}, TileMode.MIRROR);
    mGradientIndex = 0;
    mPaint = new Paint();
    mMatrix = new Matrix();
    mPaint.setTextSize(mTextSize);
    mHandler.sendEmptyMessageDelayed(MSG_REDRAW, DRAW_INTERVAL);
}
 
開發者ID:zeusro,項目名稱:SpecialAlarmClock,代碼行數:37,代碼來源:SlideView.java

示例14: createReflectedImageWithOriginalBitmap

/**
 * 同時創建 圖片及其自身倒影
 * 
 * @param originalBitmap
 *            需要倒過來的 圖片
 * @param reflectionGap
 *            圖片與倒影間隔距離
 * @return 圖片及其自身倒影
 */
public static Bitmap createReflectedImageWithOriginalBitmap(Bitmap originalBitmap, final int reflectionGap) {
	// 圖片的寬度
	int width = originalBitmap.getWidth();
	// 圖片的高度
	int height = originalBitmap.getHeight();
	if (height <= reflectionGap) {
		return null;
	}

	Matrix matrix = new Matrix();
	// 圖片縮放,x軸變為原來的1倍,y軸為-1倍,實現圖片的反轉
	matrix.preScale(1, -1);
	// 創建反轉後的圖片Bitmap對象,圖片高是原圖的一半。
	Bitmap reflectionBitmap = Bitmap.createBitmap(originalBitmap, 0, height / 2, width, height / 2, matrix, false);
	// 創建標準的Bitmap對象,寬和原圖一致,高是原圖的1.5倍。
	Bitmap withReflectionBitmap = Bitmap.createBitmap(width, (height + height / 2 + reflectionGap), Config.ARGB_8888);

	// 構造函數傳入Bitmap對象,為了在圖片上畫圖
	Canvas canvas = new Canvas(withReflectionBitmap);
	// 畫原始圖片
	canvas.drawBitmap(originalBitmap, 0, 0, null);

	// 畫間隔矩形
	Paint defaultPaint = new Paint();

	int itsColor = android.R.color.transparent;
	defaultPaint.setColor(itsColor);
	canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);

	// 畫倒影圖片
	canvas.drawBitmap(reflectionBitmap, 0, height + reflectionGap, null);

	// 實現倒影效果
	Paint paint = new Paint();
	LinearGradient shader = new LinearGradient(0, originalBitmap.getHeight(), 0, withReflectionBitmap.getHeight(), 0x70ffffff, 0x00ffffff, TileMode.MIRROR);
	// LinearGradient shader = new LinearGradient(0, originalBitmap.getHeight(), 0, withReflectionBitmap.getHeight(), 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
	paint.setShader(shader);
	paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

	// 覆蓋效果
	canvas.drawRect(0, height, width, withReflectionBitmap.getHeight(), paint);

	return withReflectionBitmap;
}
 
開發者ID:imknown,項目名稱:IMKBaseFrameworkLibrary,代碼行數:53,代碼來源:ImageReflect.java

示例15: doGradient

private Gradient doGradient(boolean isLinear, Attributes atts)
{
	Gradient gradient = new Gradient();
	gradient.id = getStringAttr("id", atts);
	gradient.isLinear = isLinear;
	if (isLinear)
	{
		gradient.x1 = getFloatAttr("x1", atts, 0f);
		gradient.x2 = getFloatAttr("x2", atts, 1f);
		gradient.y1 = getFloatAttr("y1", atts, 0f);
		gradient.y2 = getFloatAttr("y2", atts, 0f);
	}
	else
	{
		gradient.x = getFloatAttr("cx", atts, 0f);
		gradient.y = getFloatAttr("cy", atts, 0f);
		gradient.radius = getFloatAttr("r", atts, 0f);
	}
	String transform = getStringAttr("gradientTransform", atts);
	if (transform != null)
	{
		gradient.matrix = parseTransform(transform);
	}
	String spreadMethod = getStringAttr("spreadMethod", atts);
	if (spreadMethod == null)
	{
		spreadMethod = "pad";
	}

	gradient.tilemode = (spreadMethod.equals("reflect")) ? TileMode.MIRROR : (spreadMethod.equals("repeat")) ? TileMode.REPEAT : TileMode.CLAMP;

	String unit = getStringAttr("gradientUnits", atts);
	if (unit == null)
	{
		unit = "objectBoundingBox";
	}
	gradient.boundingBox = !unit.equals("userSpaceOnUse");

	String xlink = getStringAttr("href", atts);
	if (xlink != null)
	{
		if (xlink.startsWith("#"))
		{
			xlink = xlink.substring(1);
		}
		gradient.xlink = xlink;
	}
	return gradient;
}
 
開發者ID:maxwell-nc,項目名稱:ExhibitionCenter,代碼行數:49,代碼來源:SVGParser.java


注:本文中的android.graphics.Shader.TileMode.MIRROR屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。