2017-04-11 39 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