小编Swa*_*arg的帖子

在Android中实现富文本编辑器?

我想知道在Android中实现富文本编辑器是否有任何好的选择.请注意我在谈论可以在Android应用程序中使用的富文本编辑器,而不是使用HTML和Javascript嵌入在网页中的编辑器.

我的要求是:

  • 基本格式(颜色,字体,高亮,粗体,斜体,下划线等)
  • 超链接
  • 内嵌图像
  • 子弹列表和编号列表
  • 内联表(只有单元格内的内容是可编辑的,而不是表格结构)

正如您所看到的,这几乎与Windows上的典型RichEdit控件非常相似.

以下是我迄今为止所做的一些努力(调查和原型设计):

使用WebView

我已经尝试使用WebView控件加载一个HTML片段.内容变得可编辑,因为它是HTML,我想它可以满足我的大多数要求.但它有几个问题:

  • (致命的)没有文字插入符号.用户将不知道他/她键入的字符将插入何处.
  • 默认情况下,屏幕上的软键盘不可见.有一个技巧,用户必须长按菜单按钮才能调出键盘.但我认为这是一个非常糟糕的用户体验.此外,屏幕布局没有正确重新排列,文本插入点有时会被键盘覆盖.

使用EditText

我尝试过使用EditText控件.它似乎支持某种程度的富文本编辑(颜色,字体,粗体,斜体,下划线,内嵌图像,项目符号列表).但我仍然无法弄清楚如何实现以下要求:

  • 控制子弹符号的外观(圆点,圆圈,短划线,箭头,星号等)
  • 编号清单(1.,2.,3等)

顺便说一下,我已经看到有几个*Span类,但我不确定它们是否可以提供任何帮助......而http://developer.android.com并没有提供有关它们的有用信息.


那么,我怎么能在Android上实现富文本编辑器呢?我可以扩展EditText并添加我的新功能吗?或者我应该从头做什么 - 扩展视图并自己实现所有内容?对于后来的选项(扩展视图),我实际上甚至不知道如何显示文本插入符并使其闪烁,而不是提及用户键入移动插入符号.

我现在很绝望......有什么提示吗?

谢谢!

托尼


(编辑)

经过一番进一步调查后,看起来扩展EditText将是我最好的选择.我以某种方式弄清楚如何使用这些Span类并猜测我应该能够通过使用(扩展)它们来完成大部分技巧.

例如,扩展BulletSpan并覆盖drawLeadingMargin可以让我控制子弹的外观.扩展LeadingMarginSpan应该在编号列表上帮助我.

至于表格,我的初步计划是扩展LineBackgroundSpan并在drawBackground覆盖中绘制所有表格边框.但是,我仍然需要弄清楚如何布置表格单元格中的所有文本并正确处理插入符号移动和选择.建议?

android richedit android-edittext

55
推荐指数
3
解决办法
3万
查看次数

使用dialogfragment从datepicker获取日期

我正在使用谷歌示例使用对话框片段在我的应用程序中插入一个日期选择器
http://developer.android.com/guide/topics/ui/controls/pickers.html

但是我不确定如何在设置之后获得日期(不是java专家).对话框和日期选择器运行正常,我可以记录该日期是否已正确设置但是,如何才能在父活动上执行回调?

这是我的Dialog片段

public class DatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        **Log.w("DatePicker","Date = " + …
Run Code Online (Sandbox Code Playgroud)

android datepicker android-datepicker android-dialog

52
推荐指数
4
解决办法
7万
查看次数

从代码中获取androidManifest的"可调试"值?

我在android提供的Log.java上编写了一个包装器.我的类将在日志中添加一些其他应用程序级功能.

现在问题是我想从代码中检查androidManifest.xml文件中的"debuggable"是否设置为"true"或"false".

我能这样做吗?如果有,怎么样?

android android-manifest

49
推荐指数
2
解决办法
1万
查看次数

Android活动指标?

如何在Android中显示活动指标?是否有任何Android库给定的方法?如果不是,请告诉我用于在Android中显示活动指示器的技巧?

android android-layout android-activity

49
推荐指数
4
解决办法
7万
查看次数

android捏缩放

我的布局包含按钮,textviews等.是否可以在我的布局中实现捏缩放?

android image-zoom pinchzoom

47
推荐指数
4
解决办法
11万
查看次数

Android - 如何在代码中设置首选项

我有一个Android应用程序,我在xml文件中有我的首选项,工作正常.我现在想要使用代码设置其中一个首选项而不是显示整个首选项屏幕,我将如何进行此操作?

android android-preferences sharedpreferences

41
推荐指数
2
解决办法
5万
查看次数

android - 如何让按钮闪烁?

在代码中,是否有任何方法可以使按钮持续闪烁,然后在按下时停止闪烁?

android android-button android-gesture

41
推荐指数
2
解决办法
4万
查看次数

Android ImageView修复图像大小

我有一个Android应用程序,我有一个ImageView,我需要保持大小不变​​,我需要放入ImageView不同大小的各种图像.

我只需要确保所有图像都必须适合ImageView,如果图像较小则图像应该增大,并且如果图像较大则应该减小.

非常感谢你的时间.

android imageview android-imageview

40
推荐指数
4
解决办法
15万
查看次数

Android录制来电和去电

我想了解有没有办法在Android手机2.2及以上版本上记录来电和外拨电话?

客户希望记录他们对客户进行的代理的调用,以便以后可以用它来填写一些材料.而不是让客户端在通话时等待他们想要稍后再做.

这是可能的,我需要使用哪些API?

android android-phone-call call-recording

38
推荐指数
1
解决办法
5万
查看次数

向下滚动时,RecyclerView项目之间形成较大的间隙

我正在制作ToDo列表应用程序,并且在测试时,出于某种原因,每当我尝试向下滚动时,项目之间会形成巨大的差距.每当我拖放项目时总会发生这种情况,但我没有看到我的ItemTouchHelper适配器和回调类有任何错误.如果你可以帮助我,那将是非常棒的.

之前: 之前

后: 后

RecyclerAdapter.java

public class RecyclerAdapter extends                                                                                                                                 

RecyclerView.Adapter<RecyclerAdapter.RecyclerVH> implements ItemTouchHelperAdapter{
private LayoutInflater layoutInflater;
ArrayList<Info> data;
Context context;

public RecyclerAdapter(Context context) {
    layoutInflater = LayoutInflater.from(context);
    this.context = context;
}

public void setData(ArrayList<Info> data) {
    this.data = data;
    notifyDataSetChanged();
}

@Override
public RecyclerVH onCreateViewHolder(ViewGroup viewGroup, int position) {
    View view = layoutInflater.inflate(R.layout.custom_row, viewGroup, false);
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("R.A onClick Owen", "onClick method triggered");
        }
    });
    RecyclerVH recyclerVH = new RecyclerVH(view);
    return recyclerVH;
}

@Override
public …
Run Code Online (Sandbox Code Playgroud)

android android-scrollview android-recyclerview

35
推荐指数
3
解决办法
3万
查看次数