2017-04-11 59 views
0

我有一个图像(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

创建活动并将布局放置在中心。在imageview中动态设置图像。创建一个处理程序,在一定的时间间隔后完成新的活动 –

+0

但不能像这样(“甜”字)? https://i.ytimg.com/vi/ZudiRol-4sk/maxresdefault.jpg –

回答

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); 
+0

谢谢,但它会影响其他显示的视图在屏幕上的位置,不是吗?因为当它可见\走了,他们会移动,因为我猜.. –

+0

image.setImageDrawable(null); 这只会在imageview中清除图像而不是使imageview不可见,您还可以用原始图像替换透明图像以隐藏原始图像。如果您的imageview位于屏幕中央,则为 – User

+0

?其他意见在哪里?还有什么其他意见? – User