ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 10221|回复: 0
上一主题 下一主题
[案例]

项目实战(新闻客户端)步步为营

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
9
                              
Main.xml
     
<?xml  <LinearLayout              <TabHost
  
                <LinearLayout
  
                    <FrameLayout
  
                    </FrameLayout>
  
              <TabWidget
  
                      <RelativeLayout
  
                        <RadioGroup
  
                                    <RadioButton
  
                                <RadioButton
  
                              <RadioButton
  
                              <RadioButton
  
                              <RadioButton
  
                        </RadioGroup>
  
            </RelativeLayout>
  
        </LinearLayout>
  
    </TabHost>
  
  </LinearLayout>
  
  package com.and.netease;
  
  import com.and.netease.utils.MoveBg;
  
import android.app.TabActivity;
  
import android.content.Intent;
  
import android.os.Bundle;
  
import android.widget.RadioGroup;
  
import android.widget.RadioGroup.OnCheckedChangeListener;
  
import android.widget.ImageView;
  
import android.widget.RelativeLayout;
  
import android.widget.TabHost;
  
  public class MainActivity extends TabActivity {
  
       TabHost tabHost;
  
       TabHost.TabSpec tabSpec;
  
       RadioGroup radioGroup;
  
       RelativeLayout  bOTTom_layout;
  
       ImageView img;
  
       int startLeft;
  
    @Override
  
    public void onCreate(Bundle  savedInstanceState) {
  
         super.onCreate(savedInstanceState);
  
         setContentView(R.layout.main);
  
        
  
        bottom_layout =  (RelativeLayout) findViewById(R.id.layout_bottom);
  
        
  
        tabHost = getTabHost();
  
         tabHost.addTab(tabHost.newTabSpec("news").setIndicator("News").setContent(new  Intent(this, TabNewsActivity.class)));
  
         tabHost.addTab(tabHost.newTabSpec("topic").setIndicator("Topic").setContent(new  Intent(this, TabTopicActivity.class)));
  
         tabHost.addTab(tabHost.newTabSpec("picture").setIndicator("Picture").setContent(new  Intent(this, TabPicActivity.class)));
  
         tabHost.addTab(tabHost.newTabSpec("follow").setIndicator("Follow").setContent(new  Intent(this, TabFollowActivity.class)));
  
         tabHost.addTab(tabHost.newTabSpec("vote").setIndicator("Vote").setContent(new  Intent(this, TabVoteActivity.class)));
  
        
  
        radioGroup =  (RadioGroup) findViewById(R.id.radiogroup);
  
         radioGroup.setOnCheckedChangeListener(checkedChangeListener);
  
        
  
        img = new  ImageView(this);
  
         img.setImageResource(R.drawable.tab_front_bg);
  
        bottom_layout.addView(img);
  
    }
  
   
  
       private  OnCheckedChangeListener checkedChangeListener = new OnCheckedChangeListener()  {
  
                @Override
  
              public void  onCheckedChanged(RadioGroup group, int checkedId) {
  
                     switch  (checkedId) {
  
                     case  R.id.radio_news:
  
                            tabHost.setCurrentTabByTag("news");
  
//                         moveFrontBg(img,  startLeft, 0, 0, 0);
  
                            MoveBg.moveFrontBg(img,  startLeft, 0, 0, 0);
  
                            startLeft  = 0;
  
                            break;
  
                     case  R.id.radio_topic:
  
                            tabHost.setCurrentTabByTag("topic");
  
                            MoveBg.moveFrontBg(img,  startLeft, img.getWidth(), 0, 0);
  
                            startLeft  = img.getWidth();
  
                            break;
  
                     case  R.id.radio_pic:
  
                            tabHost.setCurrentTabByTag("picture");
  
                            MoveBg.moveFrontBg(img,  startLeft, img.getWidth() * 2, 0, 0);
  
                            startLeft  = img.getWidth() * 2;
  
                            break;
  
                     case  R.id.radio_follow:
  
                            tabHost.setCurrentTabByTag("follow");
  
                            MoveBg.moveFrontBg(img,  startLeft, img.getWidth() * 3, 0, 0);
  
                            startLeft  = img.getWidth() * 3;
  
                            break;
  
                     case  R.id.radio_vote:
  
                            tabHost.setCurrentTabByTag("vote");
  
                            MoveBg.moveFrontBg(img,  startLeft, img.getWidth() * 4, 0, 0);
  
                            startLeft  = img.getWidth() * 4;
  
                            break;
  
                       default:
  
                            break;
  
                     }
  
              }
  
       };
  
}
  
  package com.and.netease.utils;
  
  import android.view.View;
  
import  android.view.animation.TranslateAnimation;
  
  public class MoveBg {
  
         /**
  
          * 移动方法
  
          *
  
          * @param v
  
          *             需要移动的View
  
          * @param startX
  
          *             起始x坐标
  
          * @param toX
  
          *             终止x坐标
  
          * @param startY
  
          *             起始y坐标
  
          * @param toY
  
          *             终止y坐标
  
          */
  
         
  
         
  
         public  static void moveFrontBg(View view, int startX, int toX, int startY, int toY)  {
  
                   TranslateAnimation  anim = new TranslateAnimation(startX, toX, startY, toY);
  
                   anim.setDuration(200);
  
                   anim.setFillAfter(true);
  
                   view.startAnimation(anim);
  
         }
  
}
  
  <?xml  <LinearLayout              <RelativeLayout
  
                  <ImageView
  
                      <TextView
  
                        <ImageView
  
            </RelativeLayout>
  
      <RelativeLayout
  
                      <LinearLayout
  
                    <RelativeLayout
  
                          <TextView
  
                      </RelativeLayout>
  
              <RelativeLayout
  
                        <TextView
  
                      </RelativeLayout>
  
              <RelativeLayout
  
                        <TextView
  
                      </RelativeLayout>
  
              <RelativeLayout
  
                        <TextView
  
                      </RelativeLayout>
  
              <RelativeLayout
  
                        <TextView
  
                      </RelativeLayout>
  
              <RelativeLayout
  
                        <TextView
  
                      </RelativeLayout>
  
        </LinearLayout>
  
    </RelativeLayout>
  
  </LinearLayout>
  
  package com.and.netease;
  
  import com.and.netease.utils.MoveBg;
  
  import android.app.Activity;
  
import android.graphics.Color;
  
import android.os.Bundle;
  
import android.view.Gravity;
  
import android.view.View;
  
import android.view.View.OnClickListener;
  
import android.widget.RelativeLayout;
  
import android.widget.RelativeLayout.LayoutParams;
  
import android.widget.TextView;
  
  public class TabNewsActivity extends Activity {
  
       RelativeLayout layout;
  
       TextView tv_front;//需要移动的View
  
         TextView tv_bar_news;
  
       TextView tv_bar_sport;
  
       TextView tv_bar_play;
  
       TextView tv_bar_finance;
  
       TextView tv_bar_science;
  
       TextView tv_bar_more;
  
         int avg_width = 0;// 用于记录平均每个标签的宽度,移动的时候需要
  
         @Override
  
       protected void  onCreate(Bundle savedInstanceState) {
  
              super.onCreate(savedInstanceState);
  
              setContentView(R.layout.layout_news);
  
                initViews();
  
       }
  
         private void initViews()  {
  
              layout =  (RelativeLayout) findViewById(R.id.layout_title_bar);
  
                tv_bar_news =  (TextView) findViewById(R.id.tv_title_bar_news);
  
              tv_bar_sport =  (TextView) findViewById(R.id.tv_title_bar_sport);
  
              tv_bar_play =  (TextView) findViewById(R.id.tv_title_bar_play);
  
              tv_bar_finance =  (TextView) findViewById(R.id.tv_title_bar_finance);
  
              tv_bar_science =  (TextView) findViewById(R.id.tv_title_bar_science);
  
              tv_bar_more =  (TextView) findViewById(R.id.tv_title_bar_more);
  
                tv_bar_news.setOnClickListener(onClickListener);
  
              tv_bar_sport.setOnClickListener(onClickListener);
  
              tv_bar_play.setOnClickListener(onClickListener);
  
              tv_bar_finance.setOnClickListener(onClickListener);
  
              tv_bar_science.setOnClickListener(onClickListener);
  
              tv_bar_more.setOnClickListener(onClickListener);
  
                tv_front = new  TextView(this);
  
              tv_front.setBackgroundResource(R.drawable.slidebar);
  
              tv_front.setTextColor(Color.WHITE);
  
              tv_front.setText("头条");
  
              tv_front.setGravity(Gravity.CENTER);
  
              RelativeLayout.LayoutParams  param = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,  LayoutParams.WRAP_CONTENT);
  
              param.addRule(RelativeLayout.CENTER_VERTICAL,  RelativeLayout.TRUE);
  
              layout.addView(tv_front,  param);
  
         }
  
         private OnClickListener  onClickListener = new OnClickListener() {
  
              int startX;//移动的起始位置
  
                @Override
  
              public void  onClick(View v) {
  
                     avg_width =  findViewById(R.id.layout).getWidth();
  
                     switch  (v.getId()) {
  
                     case  R.id.tv_title_bar_news:
  
                            MoveBg.moveFrontBg(tv_front,  startX, 0, 0, 0);
  
                            startX  = 0;
  
                            tv_front.setText(R.string.title_news_category_tops);
  
                            break;
  
                     case  R.id.tv_title_bar_sport:
  
                            MoveBg.moveFrontBg(tv_front,  startX, avg_width, 0, 0);
  
                            startX  = avg_width;
  
                            tv_front.setText(R.string.title_news_category_sport);
  
                            break;
  
                     case  R.id.tv_title_bar_play:
  
                            MoveBg.moveFrontBg(tv_front,  startX, avg_width * 2, 0, 0);
  
                            startX  = avg_width * 2;
  
                            tv_front.setText(R.string.title_news_category_play);
  
                            break;
  
                     case  R.id.tv_title_bar_finance:
  
                            MoveBg.moveFrontBg(tv_front,  startX, avg_width * 3, 0, 0);
  
                            startX  = avg_width * 3;
  
                            tv_front.setText(R.string.title_news_category_finance);
  
                            break;
  
                     case  R.id.tv_title_bar_science:
  
                            MoveBg.moveFrontBg(tv_front,  startX, avg_width * 4, 0, 0);
  
                            startX  = avg_width * 4;
  
                            tv_front.setText(R.string.title_news_category_science);
  
                            break;
  
                     case  R.id.tv_title_bar_more:
  
                            MoveBg.moveFrontBg(tv_front,  startX, avg_width * 5, 0, 0);
  
                            startX  = avg_width * 5;
  
                            tv_front.setText(R.string.title_news_category_more);
  
                            break;
  
                       default:
  
                            break;
  
                     }
  
                }
  
       };
  
  }
  
tabActivity的功能。这里不再赘述。
layout_topic.xml)
     
<?xml  <LinearLayout              <RelativeLayout
  
                  <ImageView
  
                      <TextView
  
                  </RelativeLayout>
  
  </LinearLayout>
  
  package com.and.netease;
  
  import android.app.Activity;
  
import android.os.Bundle;
  
  public class TabTopicActivity extends Activity {
  
         @Override
  
       protected void  onCreate(Bundle savedInstanceState) {
  
              // TODO  Auto-generated method stub
  
              super.onCreate(savedInstanceState);
  
              setContentView(R.layout.layout_topic);
  
       }
  
}
   </div

上一篇:第三十五讲:App Widget入门指南
下一篇:andriod 和GPS整合实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2024-5-6 13:11 , Processed in 0.090349 second(s), 13 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2024 ZNDS.Com

快速回复 返回顶部 返回列表