我正在尝试在RecyclerView上显示一些png图像,这些图像具有透明背景,但是在设备!!上运行时却显示白色背景。 我尝试添加
android:background="@android:color/transparent"
到ImageView,但仍然是白色
我用Picasso这样在ImageView上加载图像
Picasso.get()
.load(newpath)
.into(itemView.imgMCat)
这是包含RecyclerView的片段
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/meskback"
tools:context=".HomeFragment">
<!-- TODO: Update blank fragment layout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">
<Toolbar
android:id="@+id/toolbar"
android:background="@color/meskBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
tools:targetApi="lollipop">
<Button
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="right"
android:layout_margin="7dp"
android:id="@+id/mapiconbtn"
android:background="@drawable/mapicon"
/>
</Toolbar>
<LinearLayout
android:layout_weight="6"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="10"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/mainActivityRelayout1"
android:paddingTop="10dp"
android:layout_weight="5">
<ImageView
android:layout_width="90dp"
android:layout_height="90dp"
tools:srcCompat="@drawable/logo"
android:id="@+id/logoimg"
android:contentDescription="@string/logoimgdes"
android:src="@drawable/logo"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="5"
android:weightSum="2">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:textSize="22sp"
android:layout_weight="1"
android:textStyle="bold"
android:gravity="center"
android:textColor="@color/meskBlue"
android:text="@string/welcome"
android:textAlignment="center"/>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textSize="20sp"
android:textStyle="bold"
android:gravity="center"
android:layout_marginTop="20dp"
android:text="@string/how_can_we_help_you"
android:textAlignment="center"/>
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="4"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/McatRecylceView"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
这是包含ImageView的item_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="10dp">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="140dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgMCat"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@android:color/transparent"
android:layout_centerInParent="true"
android:layout_marginTop="3dp" android:layout_marginStart="3dp"
android:layout_marginEnd="3dp" android:layout_marginBottom="3dp"/>
<TextView
android:text="TextView"
android:id="@+id/mcategoryTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/imgMCat"
android:textAlignment="center"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
这张设备照片
答案 0 :(得分:0)
尝试
public partial class MyService : ServiceBase
{
private readonly ILogger _log;
public MyService()
: this(Log.Logger)
{
InitializeComponent();
}
public MyService(ILogger logger) // <<<<<<<<<<<<<<<<<<<
{
InitializeComponent();
if (logger == null) throw new ArgumentNullException(nameof(logger));
_log = logger.ForContext<MyService>();
}
protected override void OnStart(string[] args)
{
_log.Information("Service starting...");
// ...
_log.Information("Service started.");
}
protected override void OnStop()
{
_log.Information("Service stopping...");
// ...
_log.Information("Service stopped.");
}
}
答案 1 :(得分:0)
图像加载没有问题,您需要设置高度和宽度以包装内容,而不是具有固定的宽度和匹配的父高度,这是您应该在xml中执行的操作
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp">
<ImageView
android:id="@+id/imgMCat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:layout_centerInParent="true"
android:layout_marginTop="3dp" android:layout_marginStart="3dp"
android:layout_marginEnd="3dp" android:layout_marginBottom="3dp"/>
<TextView
android:text="TextView"
android:id="@+id/mcategoryTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/imgMCat"
android:textAlignment="center"/>
</RelativeLayout>
通过将主布局设置为所需的大小,然后设置imageview来包装png的内容,您将解决问题
但是,我建议您永远不要对任何UI组件使用固定大小,因为屏幕尺寸不同的设备数量也不同,如果您使用固定尺寸的UI元素,那么它肯定会在1个屏幕上损坏,或者其他
答案 2 :(得分:0)
我在这里找到了答案,问题出在CardView https://stackoverflow.com/a/45769769/2209611
我添加了这些属性并解决了问题
app:cardBackgroundColor="@android:color/transparent"
app:cardElevation="0dp"