我有一个应用程序。 在我的主文件中,我想去另一个活动。 但在此之前,我想展示一些照片。 我在这里看到了一些话题,但他们无法帮助我。
这是我的想法:
加载下一个屏幕时我想显示不同的图片但是1次1次,间隔4秒并且过渡很好。
我希望有人可以帮助我吗? 请尽快帮助我。
这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="32dp" />
</RelativeLayout>
这里我的java代码:( 2星之间的所有内容都是错误的)
class Main extends AsyncTask<Void, Void, Void> {
int i = 0;
protected Void doInBackground(Void... progress ) {
try {
while(i < 3)
{
publishProgress();
i++;
Thread.sleep(4000);
}
return null;
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
protected void onProgressUpdate(Void... j) {
Drawable image=null;
try{
int[] imgs = new int[]{R.drawable.grijs,R.drawable.home_afbeelding,R.drawable.menu};
image = getResources().**getDrawable**(imgs[i]);
}
catch(Exception e)
{
image = getResources().**getDrawable**(R.drawable.grijs);
**splashImage**.setImageDrawable(image);
}
**splashImage**.setImageDrawable(image);
}
private Object getResources() {
// TODO Auto-generated method stub
return null;
}
protected void onPostExecute(Void i) {
if(**changed** != true)
{
**changed** = true;
**finish()**;
**startActivity**(new **Intent**(**classContext()**,**NewActivity**.class));
}
}
}
答案 0 :(得分:0)
创建一个用于更改图像的线程,睡眠时间为4秒..
答案 1 :(得分:0)
使用AsyncTask更改图像。这是AsyncTask的代码。你应该像
一样使用它ChangeImages ci = new ChangeImages();
ci.execute();
图像位于drawables文件夹中,并引用为 R.drawable.image#,其中#表示数字。如果您想更改延迟更改 Thread.sleep(4000); 4000等于4秒。
private class ChangeImages extends AsyncTask<Void, Void, Void> {
int i = 0;
protected Void doInBackground(Void... progress ) {
try {
while(i < 3)
{
publishProgress();
i++;
Thread.sleep(4000);
}
return null;
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
protected void onProgressUpdate(Void... j) {
Drawable image=null;
try{
int[] imgs = new int[]{R.drawable.image1,R.drawable.image2,R.drawable.image3};
image = getResources().getDrawable(imgs[i]);
}
catch(Exception e)
{
image = getResources().getDrawable(R.drawable.image1);
splashImage.setImageDrawable(image);
}
splashImage.setImageDrawable(image);
}
protected void onPostExecute(Void i) {
if(changed != true)
{
changed = true;
finish();
startActivity(new Intent(classContext(),NewActivity.class));
}
}
}
答案 2 :(得分:0)
您只需使用AnimationDrawable
即可显示图片res / anim / loading.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/voipemLoading"
android:oneshot="false" >
<item
android:drawable="@drawable/loading_01"
android:duration="300"/>
<item
android:drawable="@drawable/loading_02"
android:duration="300"/>
<item
android:drawable="@drawable/loading_03"
android:duration="300"/>
<item
android:drawable="@drawable/loading_04"
android:duration="300"/>
</animation-list>
dravable_animation.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DravableAnimation"
android:background="@drawable/bg_login" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:text="@string/hello_world"
android:textColor="@color/black"
android:textSize="24sp" />
<ImageView
android:id="@+id/loading_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="37dp"
android:src="@anim/loading"
android:visibility="invisible" />
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/loading_image"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dp"
android:text="@string/btn_start" />
<强> DravableAnimation 强>
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
public class DravableAnimation extends Activity implements OnClickListener {
private AnimationDrawable mAnimation;
private ImageView mAnimLogo;
private Button mbtnStart;
private boolean mStart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dravable_animation);
mAnimLogo = (ImageView) findViewById(R.id.loading_image);
mAnimation = (AnimationDrawable) mAnimLogo.getDrawable();
mbtnStart = (Button) findViewById(R.id.btn_start);
mbtnStart.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (!mStart) {
mAnimLogo.post(new Runnable() {
@Override
public void run() {
mAnimLogo.setVisibility(View.VISIBLE);
mAnimation.start();
mStart = true;
mbtnStart.setText("Stop");
}
});
} else {
mAnimation.stop();
mbtnStart.setText("Start");
mStart = false;
}
}
}