我有三个ImageView,其中两个的“alpha”值为0.4。在此代码中,您可以更好地看到:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textlig"
android:layout_width="80dp"
android:layout_height="60dp"
android:layout_gravity="bottom"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Light" />
<ImageView
android:id="@+id/nolig"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="1"
android:contentDescription="No light"
android:src="@android:drawable/ic_menu_myplaces"
android:onClick="clickLight"/>
<ImageView
android:id="@+id/freelig"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="0.4"
android:contentDescription="Free light"
android:src="@android:drawable/ic_menu_search"
android:onClick="clickLight"/>
<ImageView
android:id="@+id/paylig"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="0.4"
android:contentDescription="Light payment"
android:src="@android:drawable/ic_menu_add"
android:onClick="clickLight"/>
</LinearLayout>
所有都有一个执行clickLight()metod的onClick值:
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void clickLight(View view){
ImageView nol = (ImageView)findViewById(R.id.nolig);
ImageView frel = (ImageView)findViewById(R.id.freelig);
ImageView pal = (ImageView)findViewById(R.id.paylig);
nol.setAlpha((float) 0.3);
frel.setAlpha((float) 0.3);
pal.setAlpha((float) 0.3);
}
这段代码不完整,因为我需要我按下的imageView的id,将valor 1放入他的alpha中。
我在这个论坛上搜索,但我一无所获。有人知道这个或某种方式吗?
非常感谢你!
答案 0 :(得分:0)
您可以使用视图ID询问按下的视图。
@覆盖 public void onClick(查看视图){ 如果(view.getId()== R.id.but_id) }
记得将监听器设置为按钮 http://developer.android.com/reference/android/view/View.OnClickListener.html
答案 1 :(得分:0)
试试这个:
public void clickLight(View view){
ImageView nol = (ImageView)findViewById(R.id.nolig);
ImageView frel = (ImageView)findViewById(R.id.freelig);
ImageView pal = (ImageView)findViewById(R.id.paylig);
switch (view.getId()) {
case R.id.nolig:
nol.setAlpha((float) 0.3);
break;
case R.id.freelig:
frel.setAlpha((float) 0.3);
break;
case R.id.paylig:
pal.setAlpha((float) 0.3);
break;
}
}
答案 2 :(得分:0)
你可以这样做:
var c=$(".boxes div");
setInterval(function(){
$.each(c,function(a,z){
$("div[class='"+(z.className)+"'").hide();
});
var item = c[Math.floor(Math.random()*c.length)];
var u=item.className;
$("."+u).fadeOut();
$("div[class='"+u+"'").show().fadeIn(1000);
}, 2000);
答案 3 :(得分:0)
该方法接收单击的ImageView
作为参数:
public void clickLight(View view){
ImageView clickedImage = (ImageView)findViewById(view.id);
clickedImage.setAlpha(1.0f);
// set the other ImageViews
// ...
答案 4 :(得分:0)
您可以通过多种方式对此进行编码。这里有几个。
选项1使用View's ID
:
public void clickLight(View view){
ImageView nol = (ImageView)findViewById(R.id.nolig);
ImageView frel = (ImageView)findViewById(R.id.freelig);
ImageView pal = (ImageView)findViewById(R.id.paylig);
//You can also use an switch block
if(view == nol) {
nol.setAlpha((float) 0.3);
}else if(view == frel) {
frel.setAlpha((float) 0.3);
}else if(view == pal) {
pal.setAlpha((float) 0.3);
}
}
选项2使用View's ID
的替代方式:
public void clickLight(View view){
switch (view.getId()){
case R.id.nolig:
//do something
((ImageView)findViewById(R.id.nolig)).setAlpha((float) 0.3);
break;
case R.id.freelig:
//do something
((ImageView)findViewById(R.id.freelig)).setAlpha((float) 0.3);
break;
case R.id.paylig:
//do something
((ImageView)findViewById(R.id.paylig)).setAlpha((float) 0.3);
break;
}
}
选项3使用TAG
:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textlig"
android:layout_width="80dp"
android:layout_height="60dp"
android:layout_gravity="bottom"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Light" />
<ImageView
android:id="@+id/nolig"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="1"
android:contentDescription="No light"
android:src="@android:drawable/ic_menu_myplaces"
android:onClick="clickLight"
android:tag="nolig"/>
<ImageView
android:id="@+id/freelig"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="0.4"
android:contentDescription="Free light"
android:src="@android:drawable/ic_menu_search"
android:onClick="clickLight"
android:tag="nolig"/>
<ImageView
android:id="@+id/paylig"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="0.4"
android:contentDescription="Light payment"
android:src="@android:drawable/ic_menu_add"
android:onClick="clickLight"
android:tag="nolig"/>
</LinearLayout>
public void clickLight(查看视图){
switch (view.getTag().toString()){
case "nolig":
//do something
((ImageView)findViewById(R.id.nolig)).setAlpha((float) 0.3);
break;
case "freelig":
//do something
((ImageView)findViewById(R.id.freelig)).setAlpha((float) 0.3);
break;
case "paylig":
//do something
((ImageView)findViewById(R.id.paylig)).setAlpha((float) 0.3);
break;
}
}
老实说,虽然我会建议使用像ButterKnife这样的图书馆。这只是我个人的偏好。 Butterknife