按下按钮时从下拉菜单中随机选择图像的应用程序

灰狐

我是Android开发的新手,到处都是可以合并的代码,但运气不好。

因此,我想创建一个Android应用程序,当按下按钮时,它会从可绘制文件夹中随机选择图像,并且您不能再按下按钮30秒钟。

任何帮助都将受到欢迎。

随机活动

package com.example.no;

import java.util.Random;

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View.OnClickListener; 

public class RandomImage extends Activity implements OnClickListener{ 
    private static final Random rgenerator = new Random(); 
    Integer [] mImageIds = { 
            R.drawable.img1, 
            R.drawable.img2, 
            R.drawable.img3, 
            }; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)]; 
    ImageView iv = (ImageView) findViewById(R.id.imageviewyeah); 
    iv.setTag(q); 
    View nextButton = findViewById(R.id.next_image_button); 
    nextButton.setOnClickListener(this); 
} 

    @Override 
    public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.next_image_button: 
        Intent i = new Intent(this, RandomImage.class); 
        startActivity(i); 
        break; 
    } 
} 

    @Override 
        public boolean onCreateOptionsMenu (Menu menu) { 
                super.onCreateOptionsMenu(menu); 
                MenuInflater inflater = getMenuInflater(); 
                inflater.inflate(R.menu.main, menu); 
                return true; 
        } 
@Override 
public boolean onOptionsItemSelected (MenuItem item) { 
                switch (item.getItemId()) { 
                case R.id.action_settings: 
                        startActivity(new Intent(this, MainActivity.class)); 
                        return true; 
} 

return false; 
        } 

}

-activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    android:orientation="vertical" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/widget0" 
android:background="@drawable/bgi" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
    android:layout_gravity="center" > 
<ImageView 
        android:id="@+id/imageviewyeah" 
        android:tag="q" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center"> 
</ImageView> 
<Button 
        android:id="@+id/next_image_button" 
        android:text="Next Image" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:padding="10dip" 
        android:typeface="serif"/> 
</LinearLayout>

-

幻影

在声明中:

final Random rnd = new Random();
ImageView img = null;
Button btnRandom = null;

在主要活动中:

@Override
protected void onCreate(
    final Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    setContentView(R.layout.rnd_images);
    img = (ImageView) findViewById(R.id.imgRandom);
    btnRandom = (Button) findViewById(R.id.btnRandom);
}

protected final static int getResourceID
(final String resName, final String resType, final Context ctx)
{
    final int ResourceID =
        ctx.getResources().getIdentifier(resName, resType,
            ctx.getApplicationInfo().packageName);
    if (ResourceID == 0)
    {
        throw new IllegalArgumentException
        (
            "No resource string found with name " + resName
            );
    }
    else
    {
        return ResourceID;
    }
}

public void clickHandler(final View v)
{
    switch(v.getId())
    {
        case R.id.btnRandom:
        {
            if (!btnRandom.isEnabled())
            {
                return;
            }

            // I have 3 images named img_0 to img_2, so...
            final String str = "img_" + rnd.nextInt(2);
            img.setImageDrawable
            (
                getResources().getDrawable(getResourceID(str, "drawable",
                    getApplicationContext()))
            );
            btnRandom.setEnabled(false);

            new CountDownTimer(5000, 1000) // Wait 5 secs, tick every 1 sec
            {
                @Override
                public final void onTick(final long millisUntilFinished)
                {
                    btnRandom.setText("Wait: " + (millisUntilFinished / 1000));
                }
                @Override
                public final void onFinish()
                {
                    btnRandom.setText("Change!");
                    btnRandom.setEnabled(true);
                }
            }.start();

            break;
        }
    }
}

布局(rnd_images.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"
    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=".MainActivity"
    >
    <ImageView
        android:id="@+id/imgRandom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
    />
    <Button
        android:id="@+id/btnRandom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Change!"
        android:onClick="clickHandler"
    />
</RelativeLayout>

[编辑]

我修改了布局中的按钮定义。而且我发现计时没有得到遵守,因此,我将对其进行修复。

我还修复了代码以正确处理时间。

[重新编辑]

我修改了clickHandler函数,以显示剩余的宽限期,并在单击后首次启动,没有任何延迟

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当按下“提交”按钮时是否运行JavaScript函数,而不是在下拉菜单中选择?

来自分类Dev

从Python Selenium中选择AngularJS应用程序中的下拉菜单

来自分类Dev

如何在RHEL 7的“使用其他应用程序打开”下的下拉菜单中添加应用程序

来自分类Dev

用户从下拉菜单中选择时刷新CKEDITOR

来自分类Dev

从下拉菜单中选择值

来自分类Dev

从下拉菜单中选择元素

来自分类Dev

如何从下拉菜单中选择多个值,并在单击提交按钮时将其显示在文本区域中?

来自分类Dev

按下菜单按钮时应用程序崩溃

来自分类Dev

如何在离子应用程序的角度下拉菜单中正确选择对象

来自分类Dev

Scrapy,从下拉菜单中抓取

来自分类Dev

按下按钮时Java应用程序创建Rectangle

来自分类Dev

按下按钮时应用程序保持停止

来自分类Dev

当下拉菜单具有相同的ID时,如何从下拉菜单中选择一个选项

来自分类Dev

下拉菜单中的基本php +对从下拉列表中选择的内容进行操作

来自分类Dev

在Android中按下主屏幕按钮时退出应用程序

来自分类Dev

按下按钮时,Blazor服务器应用程序中的输入字段未绑定

来自分类Dev

在完整应用程序中按下后退按钮时如何添加声音

来自分类Dev

为什么当我按下按钮在表中插入值时应用程序崩溃?

来自分类Dev

仅在选择不同下拉菜单中的多个选项时,如何触发按钮

来自分类Dev

单击下拉菜单按钮时的引导程序打开链接

来自分类Dev

Bootstrap下拉菜单在angularjs spa应用程序中不会折叠

来自分类Dev

Bootstrap下拉菜单在angularjs spa应用程序中不会折叠

来自分类Dev

使用javascript重置每次单击时从下拉菜单生成的图像

来自分类Dev

在Bootstrap中的按钮下获取下拉菜单

来自分类Dev

从下拉菜单中选择某些选项时,选中相应的复选框?

来自分类Dev

从下拉菜单中选择特定选项时如何document.write

来自分类Dev

仅当从下拉菜单中选择值时才显示结果

来自分类Dev

从下拉菜单中选择选项时更改div内容

来自分类Dev

从下拉菜单中选择学生姓名时,该警报将以学生分数弹出

Related 相关文章

  1. 1

    当按下“提交”按钮时是否运行JavaScript函数,而不是在下拉菜单中选择?

  2. 2

    从Python Selenium中选择AngularJS应用程序中的下拉菜单

  3. 3

    如何在RHEL 7的“使用其他应用程序打开”下的下拉菜单中添加应用程序

  4. 4

    用户从下拉菜单中选择时刷新CKEDITOR

  5. 5

    从下拉菜单中选择值

  6. 6

    从下拉菜单中选择元素

  7. 7

    如何从下拉菜单中选择多个值,并在单击提交按钮时将其显示在文本区域中?

  8. 8

    按下菜单按钮时应用程序崩溃

  9. 9

    如何在离子应用程序的角度下拉菜单中正确选择对象

  10. 10

    Scrapy,从下拉菜单中抓取

  11. 11

    按下按钮时Java应用程序创建Rectangle

  12. 12

    按下按钮时应用程序保持停止

  13. 13

    当下拉菜单具有相同的ID时,如何从下拉菜单中选择一个选项

  14. 14

    下拉菜单中的基本php +对从下拉列表中选择的内容进行操作

  15. 15

    在Android中按下主屏幕按钮时退出应用程序

  16. 16

    按下按钮时,Blazor服务器应用程序中的输入字段未绑定

  17. 17

    在完整应用程序中按下后退按钮时如何添加声音

  18. 18

    为什么当我按下按钮在表中插入值时应用程序崩溃?

  19. 19

    仅在选择不同下拉菜单中的多个选项时,如何触发按钮

  20. 20

    单击下拉菜单按钮时的引导程序打开链接

  21. 21

    Bootstrap下拉菜单在angularjs spa应用程序中不会折叠

  22. 22

    Bootstrap下拉菜单在angularjs spa应用程序中不会折叠

  23. 23

    使用javascript重置每次单击时从下拉菜单生成的图像

  24. 24

    在Bootstrap中的按钮下获取下拉菜单

  25. 25

    从下拉菜单中选择某些选项时,选中相应的复选框?

  26. 26

    从下拉菜单中选择特定选项时如何document.write

  27. 27

    仅当从下拉菜单中选择值时才显示结果

  28. 28

    从下拉菜单中选择选项时更改div内容

  29. 29

    从下拉菜单中选择学生姓名时,该警报将以学生分数弹出

热门标签

归档