溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中如何實(shí)現(xiàn)一個(gè)時(shí)間軸效果

發(fā)布時(shí)間:2022-04-15 16:37:14 來(lái)源:億速云 閱讀:125 作者:iii 欄目:編程語(yǔ)言

本文小編為大家詳細(xì)介紹“Android中如何實(shí)現(xiàn)一個(gè)時(shí)間軸效果”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Android中如何實(shí)現(xiàn)一個(gè)時(shí)間軸效果”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

其實(shí)只不過(guò)是布局+動(dòng)態(tài)生產(chǎn)TextView罷了,一開(kāi)始選的是 FrameLayout,后來(lái)發(fā)現(xiàn)在處理單擊事件的時(shí)候一個(gè)問(wèn)題  ,例如:

FrameLayout frameLayout= (FrameLayout) findViewById(R.id.frameLayout);     for(...){         frameLayout.add(tv1);        frameLayout.add(tv2);        //在這里直接處理單擊事件肯定是不行的,tv1和tv2是重合在一起的     }                 FrameLayout frameLayout= (FrameLayout) findViewById(R.id.frameLayout);     for(...){         tv1.setLayoutparams(....);        frameLayout.add(tv1);        frameLayout.add(tv2);       //在這里直接處理單擊事件就可以了,不知道為什么?     }

所以,直接改 成Linearlayout了,改成Linearlayout后,那些TextView的位置也好設(shè)置多了,下面是代碼:

package com.lliq.ui;    import android.app.Activity;       import android.os.Bundle;       import android.util.Log;       import android.view.View;       import android.view.View.OnClickListener;      import android.view.Window;       import android.widget.FrameLayout;       import android.widget.LinearLayout;       import android.widget.TextView;             import com.lliq.R;             public class HistoryActivity extends Activity      {          private final int space_year = 5;           private final int space_month = 5;          private String[] year = { "2010", "2011", "2012", "2013" };          private String[][] month = { { "01", "03", "04", "11" }, { "07" }, { "01", "03", "04", "11" },                  { "07" } };                  boolean menu_falg = false;// 單擊改變菜單圖標(biāo)                  private TextView[] tv_year;          private TextView[] tv_month;           private TextView content;                   @Override          protected void onCreate(Bundle savedInstanceState)           {              super.onCreate(savedInstanceState);              requestWindowFeature(Window.FEATURE_NO_TITLE);               setContentView(R.layout.iq_history);              initLayout();          }                private void initLayout()          {               LinearLayout btnback = (LinearLayout) findViewById(R.id.history_layouthome);               final TextView btnhome = (TextView) findViewById(R.id.history_btnhome);              btnback.setOnClickListener(new OnClickListener()             {                 @Override                 public void onClick(View arg0)                  {                      menu_falg = !menu_falg;                     btnhome.setBackgroundResource(menu_falg ? R.drawable.menuspread : R.drawable.menu_n);                     MainActivity.handler.sendEmptyMessage(0);                  }              });                     content = (TextView) findViewById(R.id.content);              LinearLayout timelayout = (LinearLayout) findViewById(R.id.timelayout);              tv_year = new TextView[year.length];              for (int i = 0; i < year.length; i++)              {                  tv_year[i] = new TextView(this);                  tv_year[i].setPadding(                        10,                          i == 0 ? space_year : space_year                                  * (13 - Integer.parseInt(month[i - 1][month[i - 1].length - 1])), 0, 0);                   tv_year[i].getPaint().setFakeBoldText(true);                 tv_year[i].setTextSize(14);                  tv_year[i].setTag(year[i]);                   tv_year[i].setText(year[i] + "  --");                  tv_year[i].setOnClickListener(new TimeLineClickListener(tv_year[i]));                   timelayout.addView(tv_year[i]);                  tv_month = new TextView[year.length];                  for (int j = 0; j < month[i].length; j++)                  {                      tv_month[i] = new TextView(this);                      if (j == 0)                      {                          tv_month[i].setPadding(20, space_month * Integer.parseInt(month[i][j]), 0, 0);                       } else                     {                          tv_month[i].setPadding(20, space_month                                   * (Integer.parseInt(month[i][j]) - Integer.parseInt(month[i][j - 1])),                                  0, 0);                      }                       tv_month[i].setTextSize(12);                       tv_month[i].setText(month[i][j] + "月   --");                      tv_month[i].setTag(year[i] + "-" + month[i][j]);                       tv_month[i].setOnClickListener(new TimeLineClickListener(tv_month[i]));                     timelayout.addView(tv_month[i]);                  }              }                 }                 class TimeLineClickListener implements OnClickListener           {                     TimeLineClickListener(View v)               {             }                     @Override              public void onClick(View v)               {                   content.setText(v.getTag().toString());              }          }              }

讀到這里,這篇“Android中如何實(shí)現(xiàn)一個(gè)時(shí)間軸效果”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI