我是编程和编程的新手。到目前为止,我找不到我的问题的具体答案,所以我的问题非常简短:
我正在使用android studio 2.2.3
当我点击第一张图片时,它会变为第二张图片
public void fade(View view) {
ImageView ja1 = (ImageView) findViewById(R.id.ja1);
ImageView ja2 = (ImageView) findViewById(R.id.ja2);
ja1.animate().alpha(0f).setDuration(2000);
ja2.animate().alpha(1f).setDuration(2000);
}
现在,当我想制作第二张已经可见的淡入淡出的图像时,首先使用淡入淡出的图像回来时没有任何反应!我的应用程序甚至不会做任何事情!我只是坚持第一张图片,这是我尝试使用的代码:
public void fade(View view) {
ImageView ja1 = (ImageView) findViewById(R.id.ja1);
ImageView ja2 = (ImageView) findViewById(R.id.ja2);
ja1.animate().alpha(0f).setDuration(2000);
ja2.animate().alpha(1f).setDuration(2000);
ja2.animate().alpha(0f).setDuration(2000);
ja1.animate().alpha(1f).setDuration(2000);
}
如果有人可以帮助我,我将非常感激,
谢谢你。更新:这是我的xml代码,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.dlx.myapplication.MainActivity"
android:onClick="fade2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/textView" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/ja1"
android:id="@+id/ja1"
android:onClick="fade" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/ja2"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/ja2"
android:alpha="0" />
</RelativeLayout>
答案 0 :(得分:1)
它无效。你知道为什么??因为第一张图像只会淡化到alpha 0但它仍然保持在另一张图像的顶部。所以你无法点击第二张图片。尝试使用if语句。祝你好运。
答案 1 :(得分:0)
你应该在新方法中采取相反的行动:
public void fadeImageView1(View view) {
ImageView ja1 = (ImageView) findViewById(R.id.ja1);
ImageView ja2 = (ImageView) findViewById(R.id.ja2);
ja2.animate().alpha(0f).setDuration(2000);
ja1.animate().alpha(1f).setDuration(2000);
}
在ImageView1消失后单击ImageView2时调用此方法。
答案 2 :(得分:0)
这种方式对我有用我有一种方法让一个消失而另一个消失,反之亦然。代码...
public class MainActivity extends AppCompatActivity {
ImageView ja1,ja2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ja1 = (ImageView) findViewById(R.id.ja1);
ja2 = (ImageView) findViewById(R.id.ja2);
ja1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fadeIN(getCurrentFocus());
}
});
ja2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fadeOUT(getCurrentFocus());
}
});
}
public void fadeOUT(View view) {
ja1.animate().alpha(0f).setDuration(2000);
ja2.animate().alpha(1f).setDuration(2000);
ja2.animate().alpha(0f).setDuration(2000);
ja1.animate().alpha(1f).setDuration(2000);
}
public void fadeIN(View view) {
ja2.animate().alpha(0f).setDuration(2000);
ja1.animate().alpha(1f).setDuration(2000);
ja1.animate().alpha(0f).setDuration(2000);
ja2.animate().alpha(1f).setDuration(2000);
}
}
答案 3 :(得分:0)
我认为您的问题可能是0的alpha不会使图像无法点击。你可以尝试在它们的顶部都有一个透明按钮,只需在点击它时打开一个布尔值,或者使alpha 0图像可见.GONE或其中的一些变体。
答案 4 :(得分:0)
public void fade(View view) {
ImageView cat1 = (ImageView) findViewById(R.id.cat1);
ImageView cat2 = (ImageView) findViewById(R.id.cat2);
float alpha = cat2.getAlpha();
if (alpha == 0) {
cat2.animate().alpha(1).setDuration(3000);
alpha = 1;
}
else {
cat2.animate().alpha(0).setDuration(3000);
}
}
答案 5 :(得分:0)
我就是这样做的,我将一个整数i初始化为1然后根据它的值运行不同的代码:
package com.example.dell.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
public int i = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void bbd(View view) {
Log.d(" value of i is ", String.valueOf(i));
if (i == 1) {
i++;
ImageView img2 = (ImageView) findViewById((R.id.cc));
img2.animate().alpha(0f).setDuration(2000);
ImageView img = (ImageView) findViewById(R.id.bb);
img.animate().alpha(1f).setDuration(2000);
} else if (i == 2) {
ImageView img = (ImageView) findViewById(R.id.bb);
ImageView img2 = (ImageView) findViewById((R.id.cc));
img.animate().alpha(0f).setDuration(2000);
img2.animate().alpha(1f).setDuration(2000);
i--;
}
}
}