android:以编程方式在屏幕中间显示图像

时间:2017-04-11 09:32:59

标签: java android imageview

我有一张图片(image1.png)

当我点击某个按钮时,我想让这个图像在屏幕中间显示一秒钟然后消失。我该怎么办?

我猜它会给我带来屏幕的中心坐标。

public void onClick(View button) {
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics( dm );
    int screenMiddlePointWidth = dm.widthPixels / 2;
    int screenMiddlePointHeight = dm.heightPixels / 2;
}

P.S。我不希望图像在屏幕上推送其他视图,因此我无法将其设置为不可见\已消失

1 个答案:

答案 0 :(得分:1)

您可以在xml中使用此代码将图像置于中心

<?xml version="1.0" encoding="utf-8"?>
<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="com.myapplication.MainActivity"
    tools:showIn="@layout/activity_main">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image1"
        android:layout_centerInParent="true"/>

</RelativeLayout>

然后在java文件中使用以下代码

ImageView img;
img=(ImageView)findViewById(R.id.imgview);
CountDownTimer timer = new CountDownTimer(1000, 1000) {
    @Override
    public void onTick(long millisUntilFinished) {
    }

    @Override
    public void onFinish() {
img.setVisibility(View.GONE);

            }
};
timer.start();

您可以在onCreate方法或任何您想要的地方使用计时器代码。

如果要以编程方式居中显示图像,请使用以下代码。

image.setBackgroundResource(R.drawable.image1);
LayoutParams params = (LayoutParams) image.getLayoutParams();
params.gravity = Gravity.CENTER;
img.setLayoutParams(params);