使用FrameLayout未在中心设置的图像已全部设置

时间:2015-08-06 09:41:19

标签: android eclipse android-framelayout

我试图从FrameLayout

中学习tutorial

http://javatechig.com/android/android-framelayout-example

它会在imageView中添加一个FrameLayout并尝试将图片置于中心位置

    android:scaleType="centerCrop"

但是它没有工作 图像显示如下

image

这里是activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_launcher" />

        </FrameLayout>

这是类文件

public class MainActivity extends Activity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

是否需要更换一些新属性? 图像在相对布局中很好地对齐,但在框架布局中没有对齐。任何建议?

4 个答案:

答案 0 :(得分:2)

@ user3734952:FYI

android:layout_gravity="center"

是布局参数。并非所有View Groups都支持此Layout Param。请参阅文档以了解特定视图组支持哪些布局参数。线性布局确实支持android:layout_gravity布局参数。将对象放在其容器中心的垂直和水平轴上,而不是更改其大小。

为了更好的方法,请添加android:adjustViewBounds="true"。如果您希望ImageView调整其边界以保持其drawable的宽高比,请将其设置为true。

答案 1 :(得分:1)

将布局重力设置为imageView。

 android:layout_gravity="center"

取决于你可以给予的要求&#34; layout_gravity&#34;像:

center_vertical or center_horizontal. 

答案 2 :(得分:1)

scaleType并不意味着图像在其父布局中的位置,而是如何将图像放置在其自己的边界布局中。见ScaleType link

如果您想调整左侧,底部或中心的对齐方式,可以在ImageView中使用android:layout_gravity或在其父级布局中设置android:gravity

答案 3 :(得分:0)

试试这个

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:scaleType="centerCrop"
    android:src="@drawable/ic_launcher" />