Android自定义控件
自定义按钮
1》定义按钮布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/iconMoney"
android:layout_width="25dp"
android:layout_height="fill_parent"
>
</ImageView>
<TextView
android:id="@+id/numMeoney"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
android:text="4444"
android:textSize="20dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="3dp"
android:layout_marginLeft="8dp"
>
</TextView>
<ImageView
android:layout_marginLeft="5dp"
android:id="@+id/iconAdd"
android:layout_width="25dp"
android:layout_height="fill_parent"
>
</ImageView>
</LinearLayout>
2》继承布局文件
package com.widget;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.dreamplanegames.R;
public class MoneyView extends LinearLayout {
private ImageView iconMoney;
private TextView textView;
private ImageView Addmoney;
public MoneyView(Context context,AttributeSet attributeSet) {
super(context, attributeSet);
LayoutInflater.from(context).inflate(R.layout.money, this,true);//指定布局
this.iconMoney = (ImageView)findViewById(R.id.iconMoney);
this.textView = (TextView)findViewById(R.id.numMeoney);
this.Addmoney=(ImageView)findViewById(R.id.iconAdd);
this.setClickable(true);//可以点击
this.setFocusable(true);
}
//设置控件内容
public void setText(String text) {
this.textView.setText(text);
}
public void setTextColor(int color) {
this.textView.setTextColor(color);
}
public void setTextSize(float size) {
this.textView.setTextSize(size);
}
public void setImg(Bitmap img1,Bitmap img2) {
this.iconMoney.setImageBitmap(img1);
this.Addmoney.setImageBitmap(img2);
//this.yes.setImageBitmap(img2);
}
}
3》控件的调用
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView android:id="@+id/mainMenuImage"
android:src="@drawable/xk_bg2"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ImageView>
//调用自定义控件
<com.widget.MoneyView--------------------类名
android:layout_width="wrap_content"
android:layout_height="30dp"
android:id="@+id/btnMoney"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
>
</com.widget.MoneyView>
</RelativeLayout>
4》到相应的activity调用
public class SFMainMenu extends Activity implements View.OnClickListener
{
public MoneyView moneyview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//去除应用程序标题
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.main);
//获取自定义按钮
moneyview=(MoneyView)findViewById(R.id.btnMoney);
//调用自定义控件的函数设置控件内容
moneyview.setImg(BitmapFactory.decodeResource(getResources(), R.drawable.money),BitmapFactory.decodeResource(getResources(), R.drawable.add));
moneyview.setText(""+myPointBalance);
//自定义按钮响应事件
moneyview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
//返回键
@Override
public void onBackPressed() {
super.onBackPressed();
}
}