Dav*_*vid 73 android android-support-library
我正在使用支持库在android kitkat上显示矢量图像.当我在emulater上测试我的应用程序时,我没有看到任何这些图像.我为Android棒棒糖及以上版本做了一个单独的布局,它完美地工作(我想因为我使用的是src
属性而不是srcCompat
这里的代码我在哪里使用支持库
<LinearLayout android:layout_alignParentBottom="true"
android:id="@+id/lake_detail"
android:background="@drawable/my_fishing_plan_footer_line"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="90dp"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:layout_marginRight="3dp"
android:id="@+id/fire_logo"
android:layout_width="20sp"
android:layout_height="20sp">
<ImageView
android:tint="#d74313"
app:srcCompat="@drawable/circle_icon"
android:layout_width="30sp"
android:layout_height="30sp" />
<ImageView
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
app:srcCompat="@drawable/lauzaviete"
android:layout_width="25dp"
android:layout_height="25dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为我在android studio预览窗口看到了图像.
Jar*_*ows 184
使用android.support.v7.widget.AppCompatImageView
而不是ImageView
在您的布局中,如下所示:
<LinearLayout
...
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.AppCompatImageView
android:tint="#d74313"
app:srcCompat="@drawable/circle_icon"
android:layout_width="30sp"
android:layout_height="30sp" />
<android.support.v7.widget.AppCompatImageView
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
app:srcCompat="@drawable/lauzaviete"
android:layout_width="25dp"
android:layout_height="25dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
请参阅此处和此处的AppCompatImageView
文档.app:srcCompat
设置你的 build.gradle
android {
defaultConfig {
vectorDrawables {
useSupportLibrary = true
}
}
}
Run Code Online (Sandbox Code Playgroud)
扩展您Activity
与AppCompatActivity
public final class MainActivity extends AppCompatActivity {
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Run Code Online (Sandbox Code Playgroud)
使用时app:srcCompat
,请确保在布局中使用正确的声明:
<LinearLayout
...
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
可选(警告:请阅读文档):setCompatVectorFromResourcesEnabled
在您的Application
课堂上
public class App extends Application {
@Override public void onCreate() {
super.onCreate();
// Make sure we use vector drawables
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
文档: https ://developer.android.com/reference/android/support/v7/app/AppCompatDelegate.html#setCompatVectorFromResourcesEnabled(boolean)
D-C*_*d3r 14
我有一个类似的问题,在遵循Jared Burrows的回答所有步骤后,问题没有解决.
原来我的布局文件中的"app"命名空间设置为:
xmlns:app="http://schemas.android.com/tools"
Run Code Online (Sandbox Code Playgroud)
代替:
xmlns:app="http://schemas.android.com/apk/res-auto"
Run Code Online (Sandbox Code Playgroud)
更改后,问题得到解决
nad*_*ada 12
如果其他人遇到此问题并正在使用androidx,请尝试使用androidx.appcompat.widget.AppCompatImageView
总之:
将矢量绘图支持放入模块中(build.gradle)
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
Run Code Online (Sandbox Code Playgroud)而不是android:src="@drawable/icon"
使用app:srcCompat="@drawable/icon"
确保如果Activity extends AppCompatActivity
没有此步骤,则无法显示矢量图像app:srcCompat
归档时间: |
|
查看次数: |
34647 次 |
最近记录: |