ADD week 5
This commit is contained in:
		
							
								
								
									
										54
									
								
								02-Easy5/E5/sources/androidx/emoji2/text/EmojiSpan.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								02-Easy5/E5/sources/androidx/emoji2/text/EmojiSpan.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| package androidx.emoji2.text; | ||||
|  | ||||
| import android.graphics.Paint; | ||||
| import android.text.style.ReplacementSpan; | ||||
| import androidx.core.util.Preconditions; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public abstract class EmojiSpan extends ReplacementSpan { | ||||
|     private final EmojiMetadata mMetadata; | ||||
|     private final Paint.FontMetricsInt mTmpFontMetrics = new Paint.FontMetricsInt(); | ||||
|     private short mWidth = -1; | ||||
|     private short mHeight = -1; | ||||
|     private float mRatio = 1.0f; | ||||
|  | ||||
|     public final int getHeight() { | ||||
|         return this.mHeight; | ||||
|     } | ||||
|  | ||||
|     public final EmojiMetadata getMetadata() { | ||||
|         return this.mMetadata; | ||||
|     } | ||||
|  | ||||
|     final float getRatio() { | ||||
|         return this.mRatio; | ||||
|     } | ||||
|  | ||||
|     final int getWidth() { | ||||
|         return this.mWidth; | ||||
|     } | ||||
|  | ||||
|     EmojiSpan(EmojiMetadata emojiMetadata) { | ||||
|         Preconditions.checkNotNull(emojiMetadata, "metadata cannot be null"); | ||||
|         this.mMetadata = emojiMetadata; | ||||
|     } | ||||
|  | ||||
|     @Override // android.text.style.ReplacementSpan | ||||
|     public int getSize(Paint paint, CharSequence charSequence, int i, int i2, Paint.FontMetricsInt fontMetricsInt) { | ||||
|         paint.getFontMetricsInt(this.mTmpFontMetrics); | ||||
|         this.mRatio = (Math.abs(this.mTmpFontMetrics.descent - this.mTmpFontMetrics.ascent) * 1.0f) / this.mMetadata.getHeight(); | ||||
|         this.mHeight = (short) (this.mMetadata.getHeight() * this.mRatio); | ||||
|         this.mWidth = (short) (this.mMetadata.getWidth() * this.mRatio); | ||||
|         if (fontMetricsInt != null) { | ||||
|             fontMetricsInt.ascent = this.mTmpFontMetrics.ascent; | ||||
|             fontMetricsInt.descent = this.mTmpFontMetrics.descent; | ||||
|             fontMetricsInt.top = this.mTmpFontMetrics.top; | ||||
|             fontMetricsInt.bottom = this.mTmpFontMetrics.bottom; | ||||
|         } | ||||
|         return this.mWidth; | ||||
|     } | ||||
|  | ||||
|     public final int getId() { | ||||
|         return getMetadata().getId(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user