长微博android,Android 上最强大的长微博工具:BlackLight 长微博

手机端的长微博工具屈指可数,Android 上的更是寥寥无几。除却官方客户端那不太像样的长微博功能之外,能够将长文字转换成图片的恐怕就只有锤子便签和 Smooth 了。BlackLight 作为新晋的第三方微博客户端,上线后更新频频,在不断进行基础功能优化的同时,于近期推出了长微博功能。

眼下这些手机端长微博工具都大同小异,无非是接受长文字输入,顶多还能在文首插张大图。BlackLight 虽未走出大圈,却另辟蹊径,在文字格式编辑上做起文章,类 Markdown 语法的「格式化标记」由此诞生。(下为 BlackLight 长微博效果图)

5e9ee456bcd21cb2b379b65470b6d4f0.png

写长微博很简单

BlackLight 的长微博功能并没有一个单独的入口,要发送长微博,仍需先进入发微博界面。你可以即刻编写,编写过程中点击回车换行或输入超过 140 字均可自动切换到长微博模式,同时右下角会有醒目的「长微博」三个大字提醒。此时还有一个细微的变化:表情按钮会变成画笔按钮,至于其功能我们会在后文提到。

长微博模式下支持插入图片,不过图片不能随意摆放,只能缩放后附在长微博底部。

e2f67dd019619216223a7e840e4f0d16.png

易上手的格式化标记

受 Markdown 与 Shell 语法的启发,开发者将「格式化标记」这项功能加入到 BlackLight 长微博中,这也是 BlackLight 长微博与其他长微博工具最大的差别。

普通的长微博工具并不支持加粗、倾斜、删除线等文字效果,更别提字体颜色了。而「格式化标记」则将这些不支持变为了可能,而且语法也比较简单,稍加了解便可轻松掌握。

最基本的文字格式有三种:加粗、斜体、删除线。书写语法与对应的效果与 Markdown 相似,如果你熟悉 Markdown 语法,那么你能立即上手:

__加粗__       加粗

*斜体*        斜体

~~删除线~~     删除线

(注意:加粗语法是文字前后各加两条下划线。)

这些就够了?不,这还不是全部。

BlackLight 长微博还支持给文字添加颜色,[颜色 被加颜色的文字[d是其基本语法。其中,[颜色的作用是将它之后的文字都变成该颜色,[d的作用是将它之后的文字恢复为默认颜色。所以,两者组合的效果是只有夹在两者中间的文字会被改变颜色。例如:[r红色[d的效果是红色。目前 BlackLight 支持的字母与颜色的对应关系如下:

r       g      b      y       c       m        d

红     绿     蓝     黄     青     品红     默认

如果还嫌颜色太少不够用,还能通过点击画笔按钮调出取色器任意选择。选好颜色后,颜色代码会自动生成,并且光标会自动调整到两者之间,方便快速进行输入。不过也许是该功能刚做好,还没来得及优化,点击「选好了」之后,取色器面板不会自动消失,多少影响了输入体验。

efeb7cccf85c0eeecd77ee85ca8e8448.png

f979ad91aa22dd0010612aab2cec221f.png

当然,以上这些标记是可以相互叠加的,叠加数目不限。可以是粗体红字,也可以是粗体斜体删除线红字,多种标记,任你组合。

如果你想输入语法中规定了作用的符号,可以在其之前插入反斜杠,以此将特殊字符转变为普通字符。例如:\*斜体*\的效果是*斜体*;\\的效果是\。这里也与 Markdown 语法的特性一致。

仍有不足

经过几天的使用,笔者认为有待改进的地方是长微博的发送过程。点击发送按钮后,长微博的生成与发送一气呵成,并会自动截取第一段前 140 字作为微博正文,这样未免有些不妥。倘能像锤子便签一样,先生成长微博预览,而后再确认发送,会较合理一些。一来可以让用户预览一下效果,有错误提前纠正;二来则可让用户自行决断是否输入微博正文,给用户多一些选择的余地。

小结

格式化标记并不算是什么新奇的东西,但其在长微博上的运用,却给我们带来了别样的体验。单凭「格式化标记」,BlackLight 在功能上已甩其他长微博工具好几条街。如果你平时爱写长微博,又有编辑多种文字格式的需求,那不妨用 BlackLight 来尽情书写吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个可能的OpenGL实现代码,其中包括绘制三维坐标系、设置光源和材质、绘制球体等功能。 ```c++ #include <GL/glut.h> #include <cmath> // 设置光源和材质 void initLightAndMaterial() { GLfloat whiteLight[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat blackLight[] = { 0.0f, 0.0f, 0.0f, 1.0f }; GLfloat ambient[] = { 0.3f, 0.3f, 0.3f, 1.0f }; GLfloat diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat shininess[] = { 100.0f }; GLfloat position[] = { 0.0f, 0.0f, 10.0f, 1.0f }; glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, specular); glLightfv(GL_LIGHT0, GL_POSITION, position); glMaterialfv(GL_FRONT, GL_AMBIENT, blackLight); glMaterialfv(GL_FRONT, GL_DIFFUSE, whiteLight); glMaterialfv(GL_FRONT, GL_SPECULAR, whiteLight); glMaterialfv(GL_FRONT, GL_SHININESS, shininess); } // 绘制球体 void drawSphere(GLfloat x, GLfloat y, GLfloat z, GLfloat radius, GLfloat* color) { glColor3fv(color); glPushMatrix(); glTranslatef(x, y, z); glutSolidSphere(radius, 50, 50); glPopMatrix(); } // 绘制三维坐标系 void drawAxes(GLfloat length) { glBegin(GL_LINES); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(length, 0.0f, 0.0f); glColor3f(0.0f, 1.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(0.0f, length, 0.0f); glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(0.0f, 0.0f, length); glEnd(); } // 绘制场景 void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); drawAxes(10.0f); // 绘制坐标系 GLfloat colorX[] = { 1.0f, 0.0f, 0.0f }; // X轴红色球体 drawSphere(5.0f, 0.0f, 0.0f, 1.0f, colorX); GLfloat colorY[] = { 0.0f, 1.0f, 0.0f }; // Y轴绿色球体 drawSphere(0.0f, 5.0f, 0.0f, 1.0f, colorY); GLfloat colorZ[] = { 0.0f, 0.0f, 1.0f }; // Z轴蓝色球体 drawSphere(0.0f, 0.0f, 5.0f, 1.0f, colorZ); glutSwapBuffers(); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(800, 600); glutInitWindowPosition(100, 100); glutCreateWindow("OpenGL Scene"); initLightAndMaterial(); // 设置光源和材质 glutDisplayFunc(display); // 注册显示回调函数 glutMainLoop(); return 0; } ``` 这段代码使用了OpenGL的基本绘图功能,包括绘制坐标系、绘制球体等。其中,`initLightAndMaterial`函数用于设置光源和材质,`drawSphere`函数用于绘制球体,`drawAxes`函数用于绘制坐标系。在`display`函数中,我们先绘制了坐标系,然后在X、Y、Z轴上分别绘制了不同颜色的球体。最后,我们通过注册`glutDisplayFunc`函数来指定显示回调函数,并通过`glutMainLoop`函数启动主循环。 请注意,这段代码并不是完整的实现,还需要你自己完成一些细节的处理和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值