一種方式是extends EditText
import android.content.Context;
import android.text.Layout;
import android.text.style.ImageSpan;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.EditText;
public class Edit extends EditText {
public Edit(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public Edit(Context context, AttributeSet attrs) {
super(context, attrs);
}
public Edit(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean b = super.onTouchEvent(event);
int x = (int) event.getX();
int y = (int) event.getY();
x -= getTotalPaddingLeft();
y -= getTotalPaddingTop();
x += getScrollX();
y += getScrollY();
Layout layout = getLayout();
int line = layout.getLineForVertical(y);
int off = layout.getOffsetForHorizontal(line, x);
setSelection(off);
/**
* get you interest span
*/
ImageSpan[] link = getText().getSpans(off, off, ImageSpan.class);
System.out.println("---link---" + link.length);
if (link.length != 0) {
String src = link[0].getSource();
System.out.println("---src---" + src);
return true;
}
return b;
}
}
嗨!你解決了這個問題嗎?我很有興趣回答。謝謝! – lubart
@lubart不,我仍然面臨同樣的問題。從android編輯文本的源代碼看來,android在複製文本的過程中只複製文本而不復製圖像。在LinkMovementMethod期間光標不可見也仍然是一個謎。 – Ron
有沒有更新?使用setMovementMethod()時,我無法使光標可見。 – exception01