編輯:關於Android編程
一貫作風,先看效果圖,再實現

編寫自定義屬性文件atts.xml,自定義屬性中涉及到的屬性有左右兩邊的button的背景圖,中間標題的內容,字體大小,字體顏色。
package cn.edu.zafu.view.topbar;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
/**
* Created by lizhangqu on 2015/1/18.
*/
public class TopBar extends RelativeLayout {
private Button leftButton, rightButton;
private TextView titleTextView;
private OnLeftAndRightClickListener listener;//監聽點擊事件
//設置監聽器
public void setOnLeftAndRightClickListener(OnLeftAndRightClickListener listener) {
this.listener = listener;
}
//設置左邊按鈕的可見性
public void setLeftButtonVisibility(boolean flag){
if(flag)
leftButton.setVisibility(VISIBLE);
else
leftButton.setVisibility(INVISIBLE);
}
//設置右邊按鈕的可見性
public void setRightButtonVisibility(boolean flag){
if(flag)
rightButton.setVisibility(VISIBLE);
else
rightButton.setVisibility(INVISIBLE);
}
//按鈕點擊接口
public interface OnLeftAndRightClickListener {
public void onLeftButtonClick();
public void onRightButtonClick();
}
public TopBar(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.layout_topbar, this);
leftButton = (Button) findViewById(R.id.leftButton);
rightButton = (Button) findViewById(R.id.rightButton);
titleTextView = (TextView) findViewById(R.id.titleTextView);
leftButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null)
listener.onLeftButtonClick();//點擊回調
}
});
rightButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null)
listener.onRightButtonClick();//點擊回調
}
});
//獲得自定義屬性並賦值
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.TopBar);
int leftBtnBackground = typedArray.getResourceId(R.styleable.TopBar_leftBackground, 0);
int rightBtnBackground = typedArray.getResourceId(R.styleable.TopBar_rightBackground, 0);
String titleText = typedArray.getString(R.styleable.TopBar_titleText);
float titleTextSize = typedArray.getDimension(R.styleable.TopBar_titleTextSize, 0);
int titleTextColor = typedArray.getColor(R.styleable.TopBar_titleTextColor, 0x38ad5a);
typedArray.recycle();//釋放資源
leftButton.setBackgroundResource(leftBtnBackground);
rightButton.setBackgroundResource(rightBtnBackground);
titleTextView.setText(titleText);
titleTextView.setTextSize(titleTextSize);
titleTextView.setTextColor(titleTextColor);
}
}
調用自定義控件
package cn.edu.zafu.view.topbar;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TopBar topBar= (TopBar) findViewById(R.id.topbar);
topBar.setOnLeftAndRightClickListener(new TopBar.OnLeftAndRightClickListener() {
@Override
public void onLeftButtonClick() {
Toast.makeText(getApplicationContext(),"left",Toast.LENGTH_SHORT).show();
}
@Override
public void onRightButtonClick() {
Toast.makeText(getApplicationContext(),"right",Toast.LENGTH_SHORT).show();
}
});
topBar.setLeftButtonVisibility(false);
}
}
編寫right_button_selector.xml
Android個人中心的頭像上傳,圖片編碼及截取實例
首先需要有網絡權限,然後我們這裡匹配的網絡請求是之前封裝好的Okhttp。非常的簡單方便,直接復制進去,依賴一下包,然後調用方法即可。 這裡是把圖片轉換成Base64.d
Android組件WebView編寫有道詞典小案例分享
最近學習了WebView組件,寫了一個有道詞典的小案例,分享給大家,供大家參考,具體內容如下效果圖:源碼下載:https://coding.net/u/gxs1225/p
Android NDK編譯選項設置
在Android NDK開發中,有兩個重要的文件:Android.mk和Application.mk,各盡其責,指導編譯器如何編譯程序,並決定編譯結果是什麼。本文將詳細說
android創建桌面快捷鍵shortcut
有很多人也寫過創建桌面快捷鍵的blog,但是大部分都只講了怎麼用,其實技術使用起來都很簡單,但是你使用後下次還知道嗎? 根本原因還是不清楚原理,今天我就來講講shor