Skip to content

Commit 599a1a3

Browse files
committed
修改默认图片大小为原始图片大小
1 parent 3f713fe commit 599a1a3

File tree

3 files changed

+10
-14
lines changed

3 files changed

+10
-14
lines changed

app/src/main/java/com/yuruiyin/richeditor/sample/MainActivity.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -408,9 +408,8 @@ class MainActivity : AppCompatActivity() {
408408
private fun doAddBlockImageSpan(
409409
realImagePath: String, blockImageSpanObtainObject: IBlockImageSpanObtainObject, isFromDraft: Boolean = false
410410
) {
411-
// val blockImageSpanVm = BlockImageSpanVm(this, imageVm) // 不指定宽高,使用组件默认宽高
412-
val blockImageSpanVm =
413-
BlockImageSpanVm(blockImageSpanObtainObject, imageWidth) // 指定宽高
411+
val blockImageSpanVm = BlockImageSpanVm(blockImageSpanObtainObject) // 不指定宽高,使用图片原始大小(但组件内对最大宽和最大高还是有约束的)
412+
// val blockImageSpanVm = BlockImageSpanVm(blockImageSpanObtainObject, imageWidth, imageMaxHeight) // 指定宽高
414413
blockImageSpanVm.isFromDraft = isFromDraft
415414
richEditText.insertBlockImage(realImagePath, blockImageSpanVm) { blockImageSpan ->
416415
val spanObtainObject = blockImageSpan.blockImageSpanVm.spanObject

richeditor/src/main/java/com/yuruiyin/richeditor/RichEditText.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,9 +310,9 @@ public void insertBlockImage(Drawable drawable, @NonNull BlockImageSpanVm blockI
310310

311311
// 这里减去一个值是为了防止部分手机(如华为Mate-10)ImageSpan右侧超出编辑区的时候,会导致ImageSpan被重复绘制的问题
312312
int editTextWidth = getWidthWithoutPadding();
313-
int imageWidth = blockImageSpanVm.getWidth();
313+
int imageWidth = blockImageSpanVm.getWidth() <= 0 ? originWidth : blockImageSpanVm.getWidth();
314314
int resImageWidth = imageWidth > editTextWidth ? editTextWidth : imageWidth;
315-
int imageMaxHeight = blockImageSpanVm.getMaxHeight();
315+
int imageMaxHeight = blockImageSpanVm.getMaxHeight() <= 0 ? originHeight : blockImageSpanVm.getMaxHeight();
316316
int resImageHeight = (int) (originHeight * 1.0 / originWidth * resImageWidth);
317317
resImageHeight = resImageHeight > imageMaxHeight ? imageMaxHeight : resImageHeight;
318318
// 控制显示出来的图片的高度不会大于宽度的3倍

richeditor/src/main/java/com/yuruiyin/richeditor/model/BlockImageSpanVm.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package com.yuruiyin.richeditor.model;
22

3-
import android.content.Context;
4-
5-
import com.yuruiyin.richeditor.R;
63
import com.yuruiyin.richeditor.config.AppConfig;
74

85
/**
@@ -54,12 +51,6 @@ public class BlockImageSpanVm<T extends IBlockImageSpanObtainObject> {
5451
*/
5552
private boolean isFromDraft;
5653

57-
public BlockImageSpanVm(Context context, T spanObject) {
58-
this.width = (int) context.getResources().getDimension(R.dimen.rich_editor_default_image_width);
59-
this.maxHeight = (int) (this.width * AppConfig.IMAGE_MAX_HEIGHT_WIDTH_RATIO);
60-
this.spanObject = spanObject;
61-
}
62-
6354
public BlockImageSpanVm(T spanObject, int width, int maxHeight) {
6455
this.width = width;
6556
this.maxHeight = maxHeight;
@@ -72,6 +63,12 @@ public BlockImageSpanVm(T spanObject, int width) {
7263
this.spanObject = spanObject;
7364
}
7465

66+
public BlockImageSpanVm(T spanObject) {
67+
this.width = 0;
68+
this.maxHeight = 0;
69+
this.spanObject = spanObject;
70+
}
71+
7572
public int getWidth() {
7673
return width;
7774
}

0 commit comments

Comments
 (0)