我想在点击时将按钮的图像更改为其他图像。
我知道setImageResource
方法,但我不知道如何在这段代码中应用它。
这是我的源代码:
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Toolbar extends LinearLayout {
public Toolbar(final Context context) {
super(context);
}
public Toolbar(final Context con, AttributeSet attrs) {
super(con,attrs);
setOrientation(HORIZONTAL);
setBackgroundColor(getResources().
getColor(android.R.color.transparent));
LayoutInflater inflater = (LayoutInflater)
con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.navigation, this);
TypedArray a = con.obtainStyledAttributes(attrs,
R.styleable.Toolbar);
String option = a.getString(R.styleable.Toolbar_tab_id);
String resourceId = "com.paxmodept.demo:id/"+option;
int optionId = getResources().getIdentifier(resourceId,null,null);
TextView currentOption = (TextView) findViewById(optionId);
currentOption.setBackgroundColor(getResources().
getColor(android.R.color.black));
currentOption.setTextColor(getResources().
getColor(android.R.color.black));
currentOption.requestFocus(optionId);
currentOption.setFocusable(false);
currentOption.setClickable(false);
TextView tab1 = (TextView) findViewById(R.id.tab1);
tab1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(con, Tab1.class);
con.startActivity(intent);
}
});
TextView tab2 = (TextView) findViewById(R.id.tab2);
tab2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(con, Tab2.class);
con.startActivity(intent);
}
});
TextView tab3 = (TextView) findViewById(R.id.tab3);
tab3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(con, Tab3.class);
con.startActivity(intent);
}
});
TextView tab4 = (TextView) findViewById(R.id.tab4);
tab4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(con, Tab4.class);
con.startActivity(intent);
}
});
}
}
和XML代码:
<merge
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/tab1"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_weight="1"
android:clickable="true"
android:background="@drawable/backgound_states"
android:drawableTop="@drawable/eventoff"
android:focusable="true"
android:gravity="center" />
<TextView
android:id="@+id/tab2"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_weight="1"
android:clickable="true"
android:background="@drawable/backgound_states"
android:drawableTop="@drawable/galleryoff"
android:focusable="true"
android:gravity="center" />
<TextView
android:id="@+id/tab3"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_weight="1"
android:clickable="true"
android:background="@drawable/backgound_states"
android:drawableTop="@drawable/menuoff"
android:focusable="true"
android:gravity="center" />
<TextView
android:id="@+id/tab4"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_weight="1"
android:clickable="true"
android:background="@drawable/backgound_states"
android:drawableTop="@drawable/strockoff"
android:focusable="true"
android:gravity="center" />
<!-- android:background="@drawable/contact" -->
答案 0 :(得分:2)
以下是一个drawable的示例,默认情况下为白色,按下时为黑色:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@android:color/black" /> <!-- pressed -->
<item android:drawable="@android:color/white" /> <!-- default -->
</selector>
在Folder / res / drawable中将其定义为xml并将其附加到按钮背景。您可以将此<item android:drawable="@android:color/white" />
定义为可绘制的
<item android:drawable="@drawable/my_button_pic" />
答案 1 :(得分:0)
button.setBackground(context.getResources().getDrawable(R.drawable.menu_bg));
there is another way to set image
button.setBackgroundResource(R.drawable.menu_bg);
答案 2 :(得分:0)
每当您想要更改图像时,请使用以下代码。 btn_instance是你按钮的实例。
btn_instance.setBackgroundResource(R.drawable.btn_image_ro);