我有一个 QWidget,其布局中包含 aQPixmap
和 a 。QComboxBox
我想将小部件的背景设置为透明(但我想正常显示 和QPixmap
)QComboBox
。我怎么做?
我希望在我的应用程序中,无论应用程序中发生什么,都可以播放音乐。我正在尝试使用Service
. 这是MyService.class
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
public class MyService extends Service implements MediaPlayer.OnPreparedListener {
MediaPlayer mMediaPlayer = null;
private static final String ACTION_PLAY = "com.example.action.PLAY";
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction().equals(ACTION_PLAY)) {
mMediaPlayer = MediaPlayer.create(this, R.raw.theme_song);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepareAsync(); // prepare async to not …
Run Code Online (Sandbox Code Playgroud) 我有以下几点
public class ViewBase : ContentView
{
//...
}
Run Code Online (Sandbox Code Playgroud)
当我在 XAML 中使用它时
<local:ViewBase xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MyForms;"
x:Class="MyForms.Finder"
BackgroundColor="Color.Yellow">
<!-- ... -->
</local:ViewBase>
Run Code Online (Sandbox Code Playgroud)
当我为此使用 CustomRenderer 并且甚至(如下所示)在其中什么都不做时,上面的 BackgroundColor 没有设置。当我没有定义以下几行时,背景是预期的黄色。
[assembly: ExportRenderer(typeof(ViewBase), typeof(ViewRendererBase))]
namespace MyiOS
{
public class ViewRendererBase : ViewRenderer
{
}
}
Run Code Online (Sandbox Code Playgroud)
BackgroundColor 是 ViewRenderer 的一个属性。我查看了代码,似乎 Control 没有设置(我不调用 SetNativeControl)它不能将 Control.BackgroundColor 设置为一个值。但为什么会发生这种情况?我的猜测是 ViewRenderer 的继承有问题,因为默认行为在 ContentView 上使用了不同的东西!?
我正在我的 Xamarin.Forms 应用程序中构建布局,我需要显示带有透明颜色叠加层的图像。我有一个Grid
布局,显示图像并ContentView
在其顶部堆叠一个半透明背景色。正如您在下面的图片中看到的,ContentView
(我怀疑包含Grid
)只是拒绝缩小到图像的大小( 中最大的项目Grid
)。
我怎样才能做到这一点?
我已经VerticalOptions
在不同的视图上尝试了各种不同的方法,到目前为止我所做的一切都没有奏效,但我是 Forms 的新手,所以请确认您是否认为解决方案可能是基本的。:)
提前致谢!
这是代码:
<Grid VerticalOptions="Start">
<Image Source="PlayerBackground.png" />
<ContentView BackgroundColor="#88000000"></ContentView>
<StackLayout VerticalOptions="Center">
<Image/>
<Label/>
</StackLayout>
</Grid>
Run Code Online (Sandbox Code Playgroud)
它应该是这样的:
这就是我实际得到的:
所以我一直在寻找一种方法来改变我的菜单弹出背景颜色,但我现在真的没有想法......首先,这是我的工具栏:
<android.support.v7.widget.Toolbar
android:id="@+id/main_actionbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="2dp"
app:elevation="2dp"
app:theme="@style/MainActionBar"
app:popupTheme="@style/MainActionBar.Popup"/>
Run Code Online (Sandbox Code Playgroud)
以及我在没有任何背景变化的情况下应用的 2 个主题:
<style name="MainActionBar" parent="Widget.AppCompat.Light.ActionBar">
<item name="android:background">@color/primary</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
<style name="MainActionBar.Popup" parent="Widget.AppCompat.PopupMenu">
<item name="android:textColor">@color/primary_text</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这使我的项目背景颜色看起来是蓝色的,因为我将应用程序的主要和次要颜色设置为蓝色。
我发现将项目菜单颜色更改为白色的一种解决方案是在 MainActionBar.Popup 中将 android:background 设置为白色,如下所示:
Widget.AppCompat.PopupMenu 与 android:background 设置为 @android:color/white
虽然这确实将背景颜色更改为白色,但它也会在动画开始之前将弹出窗口后面的框渲染为白色,这会破坏动画。
另一种选择是将 android:itemBackground 设置为白色,如下所示:
Widget.AppCompat.PopupMenu 与 android:itemBackground 设置为 @android:color/white
如您所见,动画现在看起来不错,但项目背景并非完全白色......
我也试过 android:popupBackground 但它似乎没有任何效果。
我知道这是一个经常被问到的问题,但我已经阅读了很多,所以我可能只是没有看到明显的错误......
我想以十六进制格式获取视图的背景颜色。
例如,考虑int getViewBackgroundColor(View view)
我的例外返回值是0Xff256e78
.
我怎么能这样做?
谢谢。
我想连接 2 个音频文件并在后台播放第三个音频。我使用了下面的代码
ffmpeg -i 1.mp3 -i 2.mp3 -i background.mp3 -filter_complex "[0:0][1:0]concat=n=2:v=0:a=1,volume=1dB[a0]; [2]volume=0.5dB[a1];[a0][a1]amerge[a]" -map "[a]" -strict -2 -y final.mp3
此处建议ffmpeg:如何在单个命令中连接音频文件和添加背景音乐?
但它给出了错误“以下过滤器无法选择它们的格式:Parsed_amerge_3 考虑在它们的输入或输出附近插入(a)格式过滤器。”
请让我知道我做错了什么。
我正在尝试在后台跟踪用户位置我尝试在我们有和没有总是使用时使用,但每次我最小化应用程序时,位置图标消失我在教程中读过它应该显示蓝色条,但我没有得到酒吧我还检查了更新位置的后台模式
map.showsUserLocation = true
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
// Do any additional setup after loading the view, typically from a nib.
alwaysAuthorization()
}
func alwaysAuthorization(){
if CLLocationManager.locationServicesEnabled() && CLLocationManager.authorizationStatus() == .authorizedWhenInUse {
locationManager.requestAlwaysAuthorization()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last
let region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude), span: MKCoordinateSpan (latitudeDelta: 0.2, longitudeDelta: 0.2))
self.map.region = region
print("location \(location!.coordinate.latitude) and \(location!.coordinate.longitude)")
}
Run Code Online (Sandbox Code Playgroud) 我想创建一个新的无状态小部件类,它由 2 个图像(顶部,底部)和一条线(由函数定义,例如(x){x+500}
,宽度(如果不应该绘制,则可以为 0)定义,并且一种颜色)将两个图像分开。
对于每个像素:
f(x) + width/2
底部的像素的结果,则应绘制f(x) - width / 2
顶部的一个像素,则应绘制Blow 看一个例子mywidget({'top': A, 'bottom': B, 'f': (x){return sin(x)+500;}, 'width': 1, 'color': Color(0xFFFFFFFF)});
:
(0,0)
+------+
| |
| A |
| __ |
|/ \__|
| |
| B |
+------+(e.g. 1920,1080)
Run Code Online (Sandbox Code Playgroud)
是否有一个线条小部件,其形状由(数学)函数定义?
就是这做的唯一途径?或者是否有一个容器小部件已经允许这样做?我已经查看了Stack 小部件,但这并不能完全解决问题,因为我需要一个结构来决定如上所述渲染哪个像素。决定应该发生什么的函数应该由用户提供。