当我在较小的设备上运行程序时,如何删除imageView

时间:2015-04-21 11:49:57

标签: java android xml imageview scale

所以我有这个应用程序,我想删除徽标,当我在较小的设备上运行它正在按下其余的ui并使事情看起来很奇怪。这是我制作的第一个应用程序,因此不确定如何完成这项工作。

这是main_activity的代码:

package no.flammbaert.flammbaert;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.Button;


public class MainActivity extends Activity implements View.OnClickListener{
    ImageButton btn_settings;
    ImageButton btn_voksen;
    ImageButton btn_barn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Init();
    }

    @Override
    public void onClick(View v) {
        if(v.getId() == btn_voksen.getId()){
            Intent i = new Intent(MainActivity.this, VoksenActivity.class);
            startActivity(i);
        }

        if(v.getId() == btn_settings.getId()){
            Intent i = new Intent(MainActivity.this, Preferences.class);
            startActivity(i);
        }

        if(v.getId() == btn_barn.getId()){
            Intent i = new Intent(MainActivity.this, BarnActivity.class);
            startActivity(i);
        }
    }

    public void Init(){
        btn_settings = (ImageButton)findViewById(R.id.btn_settings);
        btn_voksen = (ImageButton) findViewById(R.id.btn_voksen);
        btn_barn = (ImageButton) findViewById(R.id.btn_barn);
        btn_settings.setOnClickListener(this);
        btn_voksen.setOnClickListener(this);
        btn_barn.setOnClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            Intent i = new Intent(MainActivity.this, Preferences.class);
            startActivity(i);

            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

这是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:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:background="@drawable/bg_blue_sky">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/relativeLayout"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/btn_settings">

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_barn"
            android:background="@drawable/knapp_1"
            android:layout_below="@+id/imageView"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="10dp" />


        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_voksen"
            android:background="@drawable/knapp_2"
            android:layout_below="@+id/btn_barn"
            android:layout_alignLeft="@+id/btn_barn"
            android:layout_alignStart="@+id/btn_barn"
            />


        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView"
            android:background="@drawable/logo_flammbaert"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="20dp"
            android:scaleType="fitCenter"
            android:adjustViewBounds="true"/>



    </RelativeLayout>

    <ImageButton
        android:id="@+id/btn_settings"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/gear"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="10dp"
        android:scaleType="fitXY"/>
</RelativeLayout>

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

我认为您可以使用下面的代码段检查应用程序在小屏幕或大屏幕上的运行情况。

 Configuration config = getResources().getConfiguration();
            if((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) ==  
                Configuration.SCREENLAYOUT_SIZE_SMALL) 
            {
                //small screen
// Here you can remove/invisible the image view by using 
imageView.setVisible(View.GONE);

            }

答案 1 :(得分:0)

这可能是你所需要的:

首先获取屏幕的大小看看这篇文章 - &gt; Get screen dimensions in pixels

一旦你获得了这个尺寸,你就会得到“小屏幕尺寸”,并使Imageview“消失。”

imageview = (ImageView)findViewByID(R.id.imageView)
imageview.setVisivility(View.GONE);

要小心,因为有两种方法可以让“消失”成为一种观点:

  

View.GONE此视图不可见,并且不占用任何空间   布局目的。 View.INVISIBLE此视图不可见,但仍然存在   占用空间用于布局目的。

答案 2 :(得分:0)

DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        String screenSize = dm.widthPixels
                    + " "
                    + dm.heightPixels;

现在,如果您获得较小的设备分辨率,只需使用

setVisivility(View.GONE);

但我建议使用

Supporting Different Screen Sizes