在横向模式下设置按钮的大问题

发布于 2024-11-27 15:57:52 字数 1112 浏览 0 评论 0原文

我有一个在横向模式下设置的活动,并且必须保持这种方式(!因此,作为我问题的答案,不要告诉我将活动设置为纵向模式< /code> 因为这不是解决方案)。

我想在屏幕底部放置一个按钮,如下所示:

http://i52.tinypic.com/ 30n9o5t.png

但我能做到。我所有的尝试只得到了这个:

http://i53.tinypic.com/54acjs.png

这是我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    >
<SurfaceView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
   android:id="@+id/surface_camera"
    />
<Button android:id="@+id/btnPhoto" 
android:layout_gravity="right" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Take Photo !!"></Button>
</FrameLayout>

不要忘记我的活动位于 LANDSCAPE模式。 谢谢你!

I have an activity which is set up in the landscape mode and must remain this way(!So as an answer to my question don't tell me to set my activity in the PORTRAIT mode cause this is not a solution).

And I wanna put a button at the bottom of the screen like this:

http://i52.tinypic.com/30n9o5t.png

but I just can do it.All my attempts got me only this:

http://i53.tinypic.com/54acjs.png

Here is my xml file:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    >
<SurfaceView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
   android:id="@+id/surface_camera"
    />
<Button android:id="@+id/btnPhoto" 
android:layout_gravity="right" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Take Photo !!"></Button>
</FrameLayout>

Don't forget my activity is in LANDSCAPE mode.
Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜巴黎 2024-12-04 15:57:52

使用图像按钮代替。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    >
<SurfaceView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
   android:id="@+id/surface_camera"
    />
<ImageButton android:id="@+id/btnPhoto" 
    android:layout_gravity="right" 
    android:layout_width="your_button_width" 
    android:layout_height="your_button_height" 
    android:background="@drawable/your_button_here">
</ImageButton>
</FrameLayout>

Using Image button instead.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    >
<SurfaceView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
   android:id="@+id/surface_camera"
    />
<ImageButton android:id="@+id/btnPhoto" 
    android:layout_gravity="right" 
    android:layout_width="your_button_width" 
    android:layout_height="your_button_height" 
    android:background="@drawable/your_button_here">
</ImageButton>
</FrameLayout>
臻嫒无言 2024-12-04 15:57:52

这个技巧是使用 layout_weight 完成的,它告诉布局使用所有可用的可用空间。因此,您正在创建两个布局,第二个布局具有固定高度,并告诉第一个布局使用所有可用空间。该解决方案适用于横向和纵向模式。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical"
    android:layout_weight="1.0">
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="40dp">
    <!-- place your buttons in this layout -->
    </LinearLayout>
</LinearLayout>

更新

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal">
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical"
    android:layout_weight="1.0">
    </LinearLayout>
    <LinearLayout android:layout_width="40dp"
    android:layout_height="fill_parent"></LinearLayout>
</LinearLayout>

The trick is done using layout_weight which is telling the layout to use all free space available. So you are creating two layouts the second with fixed height and the tell the first to use all the free space. This solution will work in both cases Landscape and Portrait mode.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical"
    android:layout_weight="1.0">
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="40dp">
    <!-- place your buttons in this layout -->
    </LinearLayout>
</LinearLayout>

UPDATE

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal">
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical"
    android:layout_weight="1.0">
    </LinearLayout>
    <LinearLayout android:layout_width="40dp"
    android:layout_height="fill_parent"></LinearLayout>
</LinearLayout>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文