android自定义横向时间轴
时间: 2023-09-12 16:03:39 浏览: 199
你可以通过自定义布局和绘制来实现一个横向时间轴。以下是一个简单的示例:
1. 创建一个自定义的视图类,继承自 View。
```java
public class TimelineView extends View {
private List<String> events; // 存储时间轴上的事件列表
public TimelineView(Context context) {
super(context);
init();
}
public TimelineView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public TimelineView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
events = new ArrayList<>();
// 初始化事件列表
events.add("事件1");
events.add("事件2");
events.add("事件3");
// ...
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
// 绘制时间轴的线
Paint linePaint = new Paint();
linePaint.setColor(Color.RED);
linePaint.setStrokeWidth(5);
canvas.drawLine(0, height / 2, width, height / 2, linePaint);
// 绘制时间轴上的事件
Paint textPaint = new Paint();
textPaint.setColor(Color.BLACK);
textPaint.setTextSize(30);
int eventCount = events.size();
int eventSpacing = width / (eventCount + 1); // 事件之间的间距
for (int i = 0; i < eventCount; i++) {
float xPos = eventSpacing * (i + 1);
float yPos = height / 2;
canvas.drawText(events.get(i), xPos, yPos, textPaint);
}
}
}
```
2. 在你的布局文件中使用自定义的 TimelineView。
```xml
<com.example.timeline.TimelineView
android:layout_width="match_parent"
android:layout_height="100dp" />
```
请注意,上述代码只是一个基本示例,你可以根据自己的需求进行扩展和美化。
阅读全文