我正在使用translationZ将imageview放在相对布局之上。但它似乎是android:translationZ =“2dp”在api级别21之下无法正常工作。这是替代方案吗?
PFB代码:
RelativeLayout layout_main = (RelativeLayout) findViewById(R.id.layout_main);
ImageView myimage= (ImageView) view.findViewById(R.id.myimage);
Picasso.with(getContext()).load("image url")
.error(getContext().getResources().getDrawable(R.mipmap.ic_business_black_48dp))
.resize(200,200).centerInside()
.placeholder(getContext().getResources().getDrawable(R.mipmap.ic_business_black_48dp)).into(myimage);
layout_main.bringToFront();
<RelativeLayout
android:id="@+id/layout_main"
android:layout_width="90dip"
android:layout_height="90dip"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="#ededeb"
android:translationZ="3dp"
android:elevation="20dp">
<ImageView
android:id="@+id/myimage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:src="@mipmap/ic_business_black_48dp" />
</RelativeLayout>
答案 0 :(得分:3)
API 21内置了view.setElevation(float)
使用ViewCompat.setElevation(view, float);
来实现向后兼容
更多方法ViewCompat.setZ(v, pixels)
和ViewCompat.setTranslationZ(v, pixels)
答案 1 :(得分:1)
你可以要求把它带到前面(类似于How to bring view on front of everything?),使用View.bringToFront()
,但这不会为你渲染阴影。早期的操作系统版本没有阴影的原生支持,所以如果你迫切需要它,你需要解决它。