日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android recyclerview實現(xiàn)縱向虛線時間軸的示例代碼

瀏覽:28日期:2022-09-17 15:00:53

效果圖

Android recyclerview實現(xiàn)縱向虛線時間軸的示例代碼

代碼

package com.jh.timelinedemo; import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.DashPathEffect;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View; /** * @Description: Android自定義虛線 * @Date 2019-07-20 10:07 * @Version */public class DividerView extends View { static public int ORIENTATION_HORIZONTAL = 0; static public int ORIENTATION_VERTICAL = 1; private Paint mPaint; private int orientation; public DividerView(Context context) {this(context, null); } public DividerView(Context context, AttributeSet attrs) {super(context, attrs);int dashGap, dashLength, dashThickness;int color; TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.DividerView, 0, 0); try { dashGap = a.getDimensionPixelSize(R.styleable.DividerView_dashGap, 5); dashLength = a.getDimensionPixelSize(R.styleable.DividerView_dashLength, 5); dashThickness = a.getDimensionPixelSize(R.styleable.DividerView_dashThickness, 3); color = a.getColor(R.styleable.DividerView_divider_line_color, 0xff000000); orientation = a.getInt(R.styleable.DividerView_divider_orientation, ORIENTATION_HORIZONTAL);} finally { a.recycle();} mPaint = new Paint();mPaint.setAntiAlias(true);mPaint.setColor(color);mPaint.setStyle(Paint.Style.STROKE);mPaint.setStrokeWidth(dashThickness);mPaint.setPathEffect(new DashPathEffect(new float[]{dashGap, dashLength,}, 0)); } public void setBgColor(int color) {mPaint.setColor(color);invalidate(); } @Override protected void onDraw(Canvas canvas) {if (orientation == ORIENTATION_HORIZONTAL) { float center = getHeight() * 0.5f; canvas.drawLine(0, center, getWidth(), center, mPaint);} else { float center = getWidth() * 0.5f; canvas.drawLine(center, 0, center, getHeight(), mPaint);} }}

package com.jh.timelinedemo; import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle;import android.view.View; public class MainActivity extends AppCompatActivity { private RecyclerView rcy; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);rcy = findViewById(R.id.rcy); LinearLayoutManager manager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);rcy.setLayoutManager(manager);TimeLineAdapter adapter = new TimeLineAdapter(this);rcy.setAdapter(adapter); }}

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical' tools:context='.MainActivity'> <androidx.recyclerview.widget.RecyclerViewandroid: android:layout_width='match_parent'android:layout_height='match_parent'android:layout_marginTop='20dp' /> </LinearLayout>

package com.jh.timelinedemo; import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup; import androidx.annotation.NonNull;import androidx.recyclerview.widget.RecyclerView; /** * * @date:on 2021/7/21 17:38 */public class TimeLineAdapter extends RecyclerView.Adapter<TimeLineAdapter.ViewHolder> { private Context context; public TimeLineAdapter(Context context) {this.context = context; } @NonNull @Override public TimeLineAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, null);ViewHolder viewHolder = new ViewHolder(inflate);return viewHolder; } @Override public void onBindViewHolder(@NonNull TimeLineAdapter.ViewHolder holder, int position) {holder.line_up.setVisibility(position == 0 ? View.INVISIBLE : View.VISIBLE);//第一條數(shù)據(jù)隱藏頭部線holder.line_down.setVisibility(position == 4 ? View.INVISIBLE : View.VISIBLE);//最后一條數(shù)據(jù)隱藏底部線 } @Override public int getItemCount() {return 5; } class ViewHolder extends RecyclerView.ViewHolder { private final DividerView line_up, line_down; public ViewHolder(@NonNull View itemView) { super(itemView); line_up = itemView.findViewById(R.id.line_up); line_down = itemView.findViewById(R.id.line_down);} }}

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='wrap_content' xmlns:custom='http://schemas.android.com/apk/res-auto' android:orientation='horizontal' android:id='@+id/rl_history_root'> <LinearLayoutandroid:layout_width='10dp'android:layout_height='match_parent'android:gravity='center_horizontal'android:layout_marginLeft='12dp'android:orientation='vertical'> <com.jh.timelinedemo.DividerView android: android:layout_width='1dp' android:layout_height='7dp' android:layerType='software' custom:dashGap='2dp' custom:dashLength='2dp' custom:dashThickness='1dp' custom:divider_line_color='#A3A9BD' custom:divider_orientation='vertical' /> <ImageView android:layout_width='10dp' android:layout_height='10dp' android: android:src='http://m.b3g6.com/bcjs/@mipmap/ic_rhombus_green' /> <com.jh.timelinedemo.DividerView android: android:layout_width='1dp' android:layout_height='match_parent' android:layerType='software' custom:dashGap='2dp' custom:dashLength='2dp' custom:dashThickness='1dp' custom:divider_line_color='#A3A9BD' custom:divider_orientation='vertical' /> </LinearLayout> <LinearLayoutandroid:layout_width='match_parent'android:layout_height='match_parent'android:layout_marginLeft='19dp'android:orientation='vertical'android:paddingBottom='30dp'> <TextView android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:text='標(biāo)題 標(biāo)題 標(biāo)題' android:textColor='#2f3856' android:textSize='14sp' /> <TextView android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_marginTop='6dp' android:text='內(nèi)容 內(nèi)容 ' android:textColor='#2f3856' android:textSize='14sp' /> </LinearLayout></LinearLayout>

<!-- 垂直方向的虛線 --> <declare-styleable name='DividerView'><!-- 虛線顏色 --><attr name='divider_line_color' format='color'/><!-- 虛線寬度 --><attr name='dashThickness' format='dimension'/><!-- 虛線dash寬度 --><attr name='dashLength' format='dimension'/><!-- 虛線dash間隔 --><attr name='dashGap' format='dimension'/><!-- 虛線朝向 --><attr name='divider_orientation' format='enum'> <enum name='horizontal' value='0'/> <enum name='vertical' value='1'/></attr> </declare-styleable>

到此這篇關(guān)于Android recyclerview實現(xiàn)縱向虛線時間軸的示例代碼的文章就介紹到這了,更多相關(guān)Android recyclerview縱向虛線時間軸內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品视频在线观看网站| 亚洲精品在线二区| 久久久久97| 久久精品国产免费| 精品伊人久久| 国产aⅴ精品一区二区四区| 精品美女视频| 国产成人精品一区二区三区在线| 亚洲2区在线| 亚洲精品欧洲| 国产精品免费不| 亚洲永久av| 久久精品国产大片免费观看| 欧美日韩国产一区精品一区| 欧美精品九九| 亚洲精品自拍| 国产欧美一级| 国产aⅴ精品一区二区三区久久| 亚洲人成在线网站| 婷婷亚洲五月| 日日夜夜免费精品视频| 国产精品成人**免费视频| 精品99久久| 蜜桃av.网站在线观看| 久久要要av| 亚洲综合中文| 久久天堂影院| 久久中文字幕av一区二区不卡| 美日韩精品视频| 国产欧美在线| 中文字幕在线免费观看视频| 99亚洲视频| 国产精品tv| 一区二区三区四区在线看| 亚洲一区av| 精品网站aaa| av不卡在线| 国产精品一区二区99| 国产91在线播放精品| 在线成人直播| 国产精品一区二区三区av| 久久激情一区| 69堂免费精品视频在线播放| 免费福利视频一区二区三区| 免费黄网站欧美| 动漫av一区| 伊人国产精品| 不卡福利视频| 日韩国产高清在线| 欧美天堂视频| 日韩精品三级| 群体交乱之放荡娇妻一区二区| 免费久久精品视频| 精品黄色一级片| 亚洲欧美日韩精品一区二区| 国产欧美成人| 蜜桃伊人久久| 亚洲成人不卡| 欧美一区二区三区久久精品| 久久精品欧美一区| 欧美xxxx中国| 国产精品sm| 婷婷成人综合| 国产精品日韩精品在线播放| 婷婷综合网站| 久久一区精品| 视频一区二区欧美| 日韩欧美中文| 日本中文字幕一区二区视频| 国产传媒在线观看| 日韩精品视频中文字幕| 亚洲国产专区校园欧美| 国产精久久一区二区| 一本一道久久a久久精品蜜桃| 国产精品国产三级在线观看| 国产亚洲福利| 日韩免费高清| 毛片不卡一区二区| 亚洲精品系列| 国产国产精品| 成人美女视频| 麻豆高清免费国产一区| 蜜桃视频第一区免费观看| 国产超碰精品| 国产精品一区二区99| 视频一区视频二区在线观看| 91精品国产自产在线观看永久∴| 国产精品一区毛片| 日韩三级精品| 视频在线观看一区| 久久在线视频免费观看| 国产精品久久久久久久久妇女| 青青草91视频| 视频精品一区| 蜜桃视频在线观看一区二区| 亚洲网站视频| 欧美久久天堂| 成人在线免费观看91| 国产精成人品2018| 亚洲欧美日韩专区| 五月天综合网站| 亚洲天堂一区二区| 国产夫妻在线| 国内一区二区三区| 国产精品多人| 日韩一区二区三免费高清在线观看| 国产精品91一区二区三区| 欧美日韩免费看片| 日韩欧美一区二区三区在线视频| 精品国产鲁一鲁****| 美女国产一区二区三区| 欧美精品观看| 人人爱人人干婷婷丁香亚洲| 中文字幕一区二区三区在线视频| 蜜桃精品在线| 亚洲天堂一区二区| 亚洲综合电影| 中国字幕a在线看韩国电影| 国产精品久久观看| 色偷偷色偷偷色偷偷在线视频| 久久精品资源| 久久99影视| 你懂的国产精品永久在线| 综合色一区二区| 久久激情综合网| 午夜亚洲精品| sm久久捆绑调教精品一区| 国产一区二区精品福利地址| 精品一区二区三区中文字幕视频| 亚洲精品福利| 日韩一二三区在线观看| 日本亚洲三级在线| 日韩中文一区二区| 日本午夜精品视频在线观看| 日韩欧美激情电影| 国产精品免费精品自在线观看| 国产精品宾馆| 国产va免费精品观看精品视频| 日韩成人a**站| 九九色在线视频| 欧美午夜不卡影院在线观看完整版免费| 国产亚洲高清视频| 视频一区日韩精品| 欧美国产日韩电影| 精品视频在线你懂得| 亚洲精品在线影院| 99国产一区| 日韩美女国产精品| 国产日韩高清一区二区三区在线| 美女视频黄免费的久久| 国产欧美一区二区三区精品酒店 | 丝袜美腿亚洲一区二区图片| 在线国产日韩| 国产欧美日韩视频在线| 精品国产午夜肉伦伦影院| 欧美三区四区| 亚洲综合二区| 欧美日韩1区2区3区| 精品久久精品| 不卡在线一区| 日韩高清一区二区| 日韩a一区二区| 亚洲欧美日韩国产| 国产精品夜夜夜| 国产99精品| 欧美综合精品| 成人在线网站| 日本久久二区| 亚洲www啪成人一区二区| 视频一区二区不卡| 久久精品亚洲| 欧美日韩第一| 国产伦精品一区二区三区视频| 美女av在线免费看| 噜噜噜久久亚洲精品国产品小说| 日韩激情啪啪| 欧美成人基地 | 亚洲欧美日韩精品一区二区| 欧美天堂在线| 999久久久91| 日韩和欧美一区二区三区| 国内精品伊人| 蜜桃av一区二区| 国产盗摄——sm在线视频| 综合一区av| 精品美女在线视频| 热久久国产精品| 岛国av在线网站| 亚洲精品福利| 亚洲午夜电影| 免费亚洲婷婷| 伊人久久一区| 亚洲国产影院| 精品视频高潮| 亚洲综合五月| 九色porny丨国产首页在线| 国产午夜精品一区在线观看| 免费成人网www| 精品国产一区二区三区噜噜噜| 免费看精品久久片|