您好,登錄后才能下訂單哦!
本文小編為大家詳細(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è)資訊頻道。
免責(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)容。