如何创建动态消息对话框以及如何应用于图片

时间:2012-04-16 09:29:16

标签: android android-layout android-dialog

我的问题是如何创建一个看似图片的消息对话框

Message dialog

我想在位图图片中应用此消息对话框

3 个答案:

答案 0 :(得分:1)

你可以这样做.......

布局msgbox1: -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal">
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image1" android:layout_gravity="center_vertical|center_horizontal"></ImageView>
</LinearLayout>

布局msgbox2: -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal">
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image1" android:layout_gravity="center_vertical|center_horizontal"></ImageView>
</LinearLayout>

Java代码: -

private static final int MsgBox1 = 0,MsgBox2 = 1; //Declaration done on top

protected Dialog onCreateDialog(int id) 
{
     dialog = new Dialog(tagame.this,android.R.style.Theme_Light_Panel);
     switch(id) {
        case MsgBox1:
            dialog.setContentView(R.layout.msgbox1);
        break; 
        case MsgBox2:
            dialog.setContentView(R.layout.msgbox2);
        break; 

    }
      return dialog;
}

要显示message1框,您可以使用...

showDialog(MsgBox1);

隐藏消息框...

removeDialog(MsgBox1);

答案 1 :(得分:0)

设置时间间隔并动态更改位图。

编辑详细答案:

你可以像这样使用imageView。 imageView.postDelayed (Runnable action, long delayMillis)

使用上述方法,

你必须创建一个Runnable来处理BitMap值的变化。并在Thread.sleep(time)中实施Runnable

通常,此方法会将ImageView放在delayMillis值之后。 因此,在立即初始化imageView之后,您必须调用此方法。 并根据您的意愿制作delayMillis值。 (在你的情况下,这应该是非常少)。

因此,根据Thread.sleep(time)方法,您的位图将动态更改。

我的第一个建议:(设置时间interval并动态更改bitmap

我建议在Timer中设置Activity并根据Timer设置,只需向BitMap提供ImageView值即可更改动态。

希望你理解并感到有用。

答案 2 :(得分:0)

您可以通过创建自定义对话框来执行此操作。 Step1。在res

中的String文件中创建一个样式
<style name="myQuitDialog" parent="android:Theme.Dialog"> 
   <item name="android:gravity">center_horizontal</item>

    </style>       

第二步。在布局中创建xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_quit"
              android:orientation="horizontal"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:background="@drawable/image which u want to show"
 >

</RelativeLayout>

步骤3。在src中编写自定义对话框的代码

class Custom_Dialog extends Dialog {

        protected Custom_Dialog(Context context, int theme) {
            super(context, theme);
            // TODO Auto-generated constructor stub
        }

    }
private void show_alert() {
        final Custom_Dialog alertbox = new Custom_Dialog(this, R.style.myQuitDialog);
        Window window = alertbox.getWindow();
        window.setBackgroundDrawableResource(android.R.color.transparent);
        window.requestFeature(window.FEATURE_NO_TITLE);

        alertbox.show(); 
        alertbox.setCancelable(true);
        alertbox.setCanceledOnTouchOutside(true);


                 alertbox.dismiss();
            }



    }

这样你就可以做到这一点。