相关疑难解决方法(0)

如何在android中创建带圆角的视图

我试图在android中创建一个圆角边的视图.到目前为止我找到的解决方案是定义一个带圆角的形状,并将其用作该视图的背景.

这就是我所做的,定义一个drawable,如下所示

<padding
android:top="2dp"
android:bottom="2dp"/>
<corners android:bottomRightRadius="20dp"
android:bottomLeftRadius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp"/>
Run Code Online (Sandbox Code Playgroud)

现在我用它作为我的布局的背景如下

<LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:clipChildren="true"
        android:background="@drawable/rounded_corner">
Run Code Online (Sandbox Code Playgroud)

这很好用,我可以看到视图有圆角.

但我的布局中有许多其他子视图说一个ImageView或一个MapView.当我在上面的布局中放置一个ImageView时,图像的角不会被剪裁/裁剪,而是显示为满.

我已经看到了其他解决方法,使它像这里解释的那样工作.

但有没有一种方法可以为视图设置圆角,并且所有子视图都包含在具有圆角的主视图中?

谢谢.

android android-layout android-view android-shape

74
推荐指数
12
解决办法
9万
查看次数

Android - 在视频上创建圆形遮罩

我对Android开发相对较新,我想知道是否可以将VideoView屏蔽成形状.这是我到目前为止:

预期结果

预期结果(样机)

实际结果

我的视频和布局XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#0088ff"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".VideoPlayerActivity" >

    <FrameLayout
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/circular_mask"
        android:foreground="@drawable/circular_mask" >

        <VideoView
            android:id="@+id/videoView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:fitsSystemWindows="false"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:scrollbarAlwaysDrawVerticalTrack="false" />

        <Space
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </FrameLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

面膜形状xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="20dp"
    android:shape="oval" >

    <solid android:color="#FFFFFFFF" />

    <corners android:radius="10dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

主要java:

package com.example.webmvideo;

import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.annotation.TargetApi;
import android.app.Activity;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;
import android.util.Log;
import android.media.MediaPlayer;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class MainActivity extends Activity …
Run Code Online (Sandbox Code Playgroud)

java xml android mask android-layout

11
推荐指数
1
解决办法
7163
查看次数

如何在 Android 中制作圆形的 Exoplayer PlayerView

嗨,我正在尝试创建一个圆形视频播放器,我正在使用 Exoplaye2 库。我将 PLayerView 放在圆形的 FrameLayout 中,但不知道如何使 PlayerView 本身变圆。我试过这个,但它不起作用,我什至创建了一个 rounded_shape_drawable 并将它添加到 Playeview 的背景中,但它不起作用(基本上,设置 PlayeView 的背景根本不起作用)。

下面是我的简单布局文件:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="25dp"
    android:layout_weight="4"
    android:gravity="center"
    android:orientation="horizontal"
    android:weightSum="1">

    <FrameLayout
        android:id="@+id/player_view_layout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.6"
        android:padding="10dp"
        android:background="@drawable/rounded_video_layout">

        <com.google.android.exoplayer2.ui.PlayerView

            android:id="@+id/exoplayer_player_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:fastforward_increment="@integer/exoplayer_playback_fastforward_increment_ms"
            app:resize_mode="fill"
            app:rewind_increment="@integer/exoplayer_playback_rewind_increment_ms"
            app:show_timeout="@integer/exoplayer_show_control_timeout_ms"
            app:use_artwork="true"
            app:use_controller="false">

        </com.google.android.exoplayer2.ui.PlayerView>

    </FrameLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

以下是我当前的输出:

在此处输入图片说明

任何帮助将不胜感激

video android background android-mediaplayer exoplayer

8
推荐指数
2
解决办法
2653
查看次数