我写了一个小应用程序,这是我的第一个Android应用程序。这是一款红外电视远程应用程序,我使用三星Galaxy S4开发,一切似乎运行良好。
这就是它在我的Galaxsy S4上的样子:Screenshot Samsung Galaxy S4
但是自从我发布到Play商店后,我从Galaxy Note 2用户那里得到了另一个屏幕截图,它看起来很混乱并且不适合他的屏幕:Screenshot Samsung Galaxy Note 2
这是我片段的布局代码, 的 fragment_page1.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">
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical"
android:rowCount="7"
android:columnCount="5"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true">
// POWER
<ImageButton
android:onClick="pressPowerButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:id="@+id/power"
android:layout_row="0"
android:layout_column="0"
android:src="@drawable/stand_by"
android:layout_marginTop="1.5dp"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="SLEEP"
android:id="@+id/sleep"
android:textColor="#2299bb"
android:textSize="12dp"
android:layout_row="0"
android:layout_column="1"
android:layout_marginTop="1.5dp"
/>
// VOLUME
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Vol +"
android:id="@+id/volUp"
android:textColor="#2299bb"
android:textStyle="bold"
android:layout_row="1"
android:layout_column="0"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Vol -"
android:id="@+id/volDown"
android:textColor="#2299bb"
android:textStyle="bold"
android:layout_row="2"
android:layout_column="0"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Mute"
android:id="@+id/mute"
android:textColor="#2299bb"
android:layout_row="3"
android:layout_column="0"
/>
// PROGRAM
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Ch +"
android:id="@+id/progUp"
android:textColor="#2299bb"
android:textStyle="bold"
android:layout_row="1"
android:layout_column="4"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Ch -"
android:id="@+id/progDown"
android:textColor="#2299bb"
android:textStyle="bold"
android:layout_row="2"
android:layout_column="4"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="CH LIST"
android:id="@+id/chList"
android:textColor="#2299bb"
android:textSize="12dp"
android:layout_marginTop="-2dp"
android:layout_row="3"
android:layout_column="4"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Info"
android:id="@+id/info"
android:textColor="#2299bb"
android:layout_row="2"
android:layout_column="3"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Guide"
android:id="@+id/guide"
android:textColor="#2299bb"
android:layout_row="1"
android:layout_column="3"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="A"
android:id="@+id/red"
android:textColor="#cc2200"
android:textStyle="bold"
android:layout_row="3"
android:layout_column="3"
/>
// MENU
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Menu"
android:id="@+id/menu"
android:textColor="#777777"
android:textSize="12dp"
android:layout_marginTop="-1.5dp"
android:layout_row="1"
android:layout_column="1"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Internet\n\@TV"
android:id="@+id/internet"
android:textColor="#777777"
android:textSize="12dp"
android:layout_marginTop="-9.5dp"
android:layout_row="1"
android:layout_column="2"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Media\nPlay"
android:id="@+id/media"
android:textColor="#777777"
android:textSize="12dp"
android:layout_marginTop="-9dp"
android:layout_row="2"
android:layout_column="2"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Tools"
android:id="@+id/tools"
android:textColor="#777777"
android:textSize="12dp"
android:layout_marginTop="-2dp"
android:layout_row="2"
android:layout_column="1"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Source"
android:id="@+id/source"
android:textColor="#777777"
android:textSize="12dp"
android:layout_marginTop="-2dp"
android:layout_row="3"
android:layout_column="1"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="Content"
android:id="@+id/content"
android:textColor="#777777"
android:textSize="12dp"
android:layout_marginTop="-2.5dp"
android:layout_row="3"
android:layout_column="2"
/>
// NAVIGATE
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25b2"
android:id="@+id/up"
android:textColor="#2299bb"
android:textStyle="bold"
android:textSize="20dp"
android:layout_marginTop="-4.5dp"
android:layout_row="4"
android:layout_column="2"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25bc"
android:id="@+id/down"
android:textColor="#2299bb"
android:textStyle="bold"
android:textSize="20dp"
android:layout_row="6"
android:layout_column="2"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25c0"
android:id="@+id/left"
android:textColor="#2299bb"
android:textStyle="bold"
android:textSize="20dp"
android:layout_row="5"
android:layout_column="1"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u23ea"
android:id="@+id/rewind"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="15dp"
android:layout_marginTop="-2.5dp"
android:layout_row="5"
android:layout_column="0"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u23e9"
android:id="@+id/forward"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="15dp"
android:layout_marginTop="-2.5dp"
android:layout_row="5"
android:layout_column="4"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25b7"
android:id="@+id/play"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="30dp"
android:layout_marginTop="-1dp"
android:layout_row="4"
android:layout_column="1"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="II"
android:id="@+id/pause"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="20dp"
android:layout_marginTop="-4dp"
android:layout_row="4"
android:layout_column="3"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25a0"
android:id="@+id/stop"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="20dp"
android:layout_row="6"
android:layout_column="3"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="EXIT"
android:id="@+id/exit"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="12dp"
android:layout_marginTop="-4dp"
android:layout_row="6"
android:layout_column="4"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25cf"
android:id="@+id/record"
android:textColor="#777777"
android:textStyle="bold"
android:textSize="20dp"
android:layout_row="6"
android:layout_column="1"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="\u25b6"
android:id="@+id/right"
android:textColor="#2299bb"
android:textStyle="bold"
android:textSize="20dp"
android:layout_row="5"
android:layout_column="3"
/>
<Button
android:onClick="pressButton"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="ENTER"
android:id="@+id/ok"
android:textColor="#118844"
android:textStyle="bold"
android:textSize="12dp"
android:layout_marginTop="-3dp"
android:layout_row="5"
android:layout_column="2"
/>
<Button
android:onClick="pressButton"
android:clickable="true"
android:layout_width="72dp"
android:layout_height="72dp"
android:text="RETURN\u21b6"
android:id="@+id/back"
android:textColor="#cc2200"
android:textStyle="bold"
android:textSize="12dp"
android:layout_marginTop="-14dp"
android:layout_row="4"
android:layout_column="4"
/>
// PLACEHOLDER
<Button
android:clickable="false"
android:layout_width="72dp"
android:layout_height="72dp"
android:text=""
android:id="@+id/placeHolder1"
android:textSize="8dp"
android:layout_row="0"
android:layout_column="2"
/>
<Button
android:clickable="false"
android:layout_width="72dp"
android:layout_height="72dp"
android:text=""
android:id="@+id/placeHolder2"
android:textSize="8dp"
android:layout_row="0"
android:layout_column="3"
/>
<Button
android:clickable="false"
android:layout_width="72dp"
android:layout_height="72dp"
android:id="@+id/placeHolder3"
android:textSize="8dp"
android:layout_row="0"
android:layout_column="4"
/>
<Button
android:clickable="false"
android:layout_width="72dp"
android:layout_height="72dp"
android:text=""
android:id="@+id/placeHolder4"
android:textSize="12dp"
android:layout_row="4"
android:layout_column="0"
android:layout_marginTop="-7dp"
/>
<Button
android:clickable="false"
android:layout_width="72dp"
android:layout_height="72dp"
android:text=""
android:id="@+id/placeHolder5"
android:textSize="12dp"
android:layout_row="6"
android:layout_column="0"
android:layout_marginTop="-4dp"
/>
</GridLayout>
</RelativeLayout>
这是来自 的 MainActivity.java
public class MainActivity extends FragmentActivity implements
ActionBar.TabListener
{
/* swipe view */
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private android.app.ActionBar actionBar;
// tab titles
private String[] tabs = { "Basic", "Advanced", "Settings"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* init swipe views */
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(mAdapter);
actionBar = getActionBar();
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (String tabName : tabs)
actionBar.addTab(actionBar.newTab().setText(tabName).setTabListener(this));
/**
* on swiping the viewpager make respective tab selected
* */
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
那我怎么能改善这个呢? 我已经阅读了有关它的文章和其他帖子,但到目前为止我没有任何工作。我尝试过fill_parent和match_parent的组合,GridView的wrap_content,RelativeLayout尝试了其他元素,如GridLayout,LinearLayout和TableLayout,但我仍然没有得到它:(
我知道我使用了一些不好的解决方法,如android:layout_marginTop =“ - 2dp”,没有这样的解决方法,我无法在我的Galaxy S4上正确显示它。如何摆脱利润?
所以我正在寻找的是一个自动缩放的GridView,它有5列7行,可以在更大的屏幕上正确显示所有按钮。
我是否需要以编程方式执行此操作或仅使用布局文件的解决方案?
如果有人可以帮助我摆脱困境,我会很高兴的!
答案 0 :(得分:0)
您需要动态调整网格项单元格的高度和宽度。 首先,您需要确定要在网格行中显示的单元格数。 在xml中设置单元格3的网格。 假设每个屏幕都有三个网格单元格。 在YourActivity.java文件中 动态计算屏幕宽度。 然后根据你想要的高度来确定宽高比。
算法:
expectedWidth = (screenWidth/number of cell) - ((padding or marjin between one cell to other)* (number of cell +1) )
expectedHeight = expectedWidth*aspect ratio
您可以根据适当的高度调整宽高比