編輯:關於Android編程
使用TabHost 可以在一個屏幕間進行不同版面的切換,而系統自帶的tabhost界面較為樸素,我們應該如何進行自定義修改優化呢
MainActivity的源代碼
package com.dream.ledong;
import android.app.TabActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.RelativeLayout;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabWidget;
import android.widget.TextView;
import com.example.client.R;
@SuppressWarnings("deprecation")
public class itemList extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.itemlist);
final TabHost tabHost = getTabHost();
Intent remoteIntent = new Intent(itemList.this, item1.class);
TabHost.TabSpec remoteTabSpec = tabHost.newTabSpec("remote");
remoteTabSpec.setIndicator("運動推薦");
remoteTabSpec.setContent(remoteIntent);
tabHost.addTab(remoteTabSpec);
Intent localIntent = new Intent(itemList.this, item2.class);
TabHost.TabSpec localTabSpec = tabHost.newTabSpec("local");
localTabSpec.setIndicator("球友人氣");
localTabSpec.setContent(localIntent);
tabHost.addTab(localTabSpec);
Intent localIntent2 = new Intent(itemList.this, item2.class);
TabHost.TabSpec localTabSpec2 = tabHost.newTabSpec("a");
localTabSpec2.setIndicator("競技氛圍");
localTabSpec2.setContent(localIntent2);
tabHost.addTab(localTabSpec2);
updateTabStyle(tabHost);
// 當某個Tab被選中時,則更新背景樣式
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
updateTabStyle(tabHost);
}
});
}
private void updateTabStyle(final TabHost mTabHost) {
TabWidget tabWidget = mTabHost.getTabWidget();
tabWidget.setRightStripDrawable(R.drawable.list_item_divide_operate);
tabWidget.setLeftStripDrawable(R.drawable.list_item_divide_operate);
for (int i = 0; i < tabWidget.getChildCount(); i++) {
RelativeLayout tabView = (RelativeLayout) mTabHost.getTabWidget()
.getChildAt(i);
TextView text = (TextView) tabWidget.getChildAt(i).findViewById(
android.R.id.title);
text.setTextSize(15);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) text
.getLayoutParams();
params.width = RelativeLayout.LayoutParams.MATCH_PARENT;
params.height = RelativeLayout.LayoutParams.MATCH_PARENT;
text.setLayoutParams(params);
text.setGravity(Gravity.CENTER);
if (mTabHost.getCurrentTab() == i) {
// 選中
tabView.setBackgroundColor(Color.parseColor("#8DB6CD"));
text.setTextColor(this.getResources().getColorStateList(
android.R.color.black));
} else {
// 未選中
tabView.setBackgroundColor(Color.parseColor("#ffffff"));
text.setTextColor(this.getResources().getColorStateList(
android.R.color.darker_gray));
}
}
}
}
Android實現右邊抽屜Drawerlayout效果
側邊欄是Android應用中很常見的一個界面效果(抽屜效果)。而利用DrawerLayout實現右側欄是相對簡單的。而且這個控件自帶滑動效果,十分方便。 DrawerLa
Android開發筆記(一百零六)支付繳費SDK
第三方支付第三方支付指的是第三方平台與各銀行簽約,在買方與賣方之間實現中介擔保,從而增強了支付交易的安全性。國內常用的支付平台主要是支付寶和微信支付,其中支付寶的市場份額
Android Studio JNI開發基礎篇
前言開發過程中,為了數據交互安全,決定對數據進行des加密,然後進行前後交互;但是,如果密鑰放置在android代碼裡面,就算是混淆,反編譯也很容易讓人拿到密鑰,數據加密
Android AnalogClock簡單使用方法實例
本文實例講述了Android AnalogClock簡單使用方法。分享給大家供大家參考,具體如下:AnalogClock組件的使用很簡單,先來看看效果圖:AnalogCl