小编Dav*_*vid的帖子

Android矢量drawable app:srcCompat没有显示图像

我正在使用支持库在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预览窗口看到了图像.

android android-support-library

73
推荐指数
4
解决办法
3万
查看次数

Glide FileNotFoundException:从Internet加载图像时没有内容提供者

我做了自己的休息api,现在它只有端点,我显示了一些图像.这是它在spring boot应用程序中的外观

@GetMapping("/image/{name:.+}")
    public byte[] getImage(@PathVariable(value = "name") String name) {
        return storageService.loadFileAsByteArray(name);
    }
Run Code Online (Sandbox Code Playgroud)

这是存储服务方法

 public byte[] loadFileAsByteArray(String filename) {
            Resource resource = loadFile(filename);
            try {
                return IOUtils.toByteArray(resource.getInputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
Run Code Online (Sandbox Code Playgroud)

在这里我在我的Android应用程序中做了什么

Glide.with(context!!.applicationContext).load("http://myipaddress/api/image/myimage.jpg").into(it)
Run Code Online (Sandbox Code Playgroud)

所以我从滑翔中得到了什么

根本原因(2/2)

java.io.FileNotFoundException: No content provider: http://myipaddress/api/image/myimage.jpg
                                                       at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1112)
                                                       at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:964)
                                                       at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:887)
                                                       at com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher.loadResource(AssetFileDescriptorLocalUriFetcher.java:22)
                                                       at com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher.loadResource(AssetFileDescriptorLocalUriFetcher.java:13)
                                                       at com.bumptech.glide.load.data.LocalUriFetcher.loadData(LocalUriFetcher.java:44)
                                                       at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
                                                       at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:299)
                                                       at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:394)
                                                       at com.bumptech.glide.load.engine.SourceGenerator.onLoadFailed(SourceGenerator.java:119)
                                                       at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.startNextOrFail(MultiModelLoader.java:151)
                                                       at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onLoadFailed(MultiModelLoader.java:142)
                                                       at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:65)
                                                       at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:97)
                                                       at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.startNextOrFail(MultiModelLoader.java:148)
                                                       at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onLoadFailed(MultiModelLoader.java:142)
                                                       at …
Run Code Online (Sandbox Code Playgroud)

rest android android-glide

15
推荐指数
2
解决办法
5684
查看次数

Android Compass指向我的位置而不是北

我正在开发指南针应用程序,我希望指南针指向特定的纬度经度位置,而不是通常的北方.我发现了一些问题,与我的问题,但我不管理,使他们为我工作.这是我的代码:

public class MainActivity extends AppCompatActivity implements SensorEventListener {
    private ImageView image;
    private float currentDegree = 0f;
    private SensorManager mSensorManager;
    private TextView tvHeading;
    private Location location = new Location("A");
    private Location target = new Location("B");
    private LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        image = (ImageView) findViewById(R.id.imageViewCompass);
        tvHeading = (TextView) findViewById(R.id.tvHeading);

        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

        location.setLatitude(54.903535);
        location.setLongitude(23.979342);

        target.setLatitude(54.904618);
        target.setLongitude(23.978782);
    }

    @Override
    protected void onResume() {
        super.onResume();

        mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
                SensorManager.SENSOR_DELAY_GAME);
    }

    @Override
    protected void onPause() { …
Run Code Online (Sandbox Code Playgroud)

android location compass-geolocation

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

浮动操作按钮和设计库膨胀错误

我正在使用设计支持库

defaultConfig {
        vectorDrawables.useSupportLibrary = true
        ...
}

dependencies {
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我添加FloatingActionButton时

<android.support.design.widget.FloatingActionButton
    android:layout_gravity="right"
    android:layout_margin="20dp"
    android:tint="#fff"
    android:src="@drawable/ic_menu_manage"
    app:backgroundTint="#b3000000"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

到我的一个布局我得到这个错误

Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.
Run Code Online (Sandbox Code Playgroud)

这是我的主要活动(it has navigation drawer)

public class MapNavActivity extends AppCompatActivity
Run Code Online (Sandbox Code Playgroud)

我知道,如果我改变它应该工作AppCompatActivityActivity

但是,这对我不起作用.这是清单文件中定义的活动

<activity
    android:name=".MapNavActivity"
    android:label="@string/title_activity_map_nav"
    android:theme="@style/AppTheme.NoActionBarMain" />
Run Code Online (Sandbox Code Playgroud)

这是styles.xml文件中的主题

<style name="AppTheme.NoActionBarMain" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme …
Run Code Online (Sandbox Code Playgroud)

android android-inflate android-theme android-support-library floating-action-button

10
推荐指数
1
解决办法
1052
查看次数

Android Loading标记动态最佳策略

我有一个谷歌地图的Android地图,可以根据用户的屏幕位置从服务器动态加载标记.因此,例如,如果用户移动地图,我只是向服务器发出请求,并且我正在发送屏幕边界,并且基于此我得到标记数据(id和corrdinates),稍后将其解析并创建为实际指针.问题是,当用户返回到同一区域(之前创建了哪些标记)时,我仍然提出相同的请求并获得相同的数据(但显然我不会让重新创建该标记,所以我只是在那里运行所有标记的循环在地图上并检查地图标记id是否相等服务器发送数据标记ID,如果它相等,我只是打破循环)

try {
                Collection<MarkerItemData> mapMarkers = algorithm.getItems();
                JSONObject jsonObject = new JSONObject(strings[0]);
                JSONArray respondArray = jsonObject.getJSONArray("respond");
                list = new ArrayList();
                for (int i = 0; i < respondArray.length(); i++) {
                    JSONObject station = respondArray.getJSONObject(i);
                    int id = station.getInt("_id");
                    boolean skip = false;
                    for (final MarkerItemData m : mapMarkers) {
                        if (m.getId() == id) {
                            skip = true;
                            break;
                        }
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

但是我不认为这种方法是最好的.我还有其他想法应该有效(至少我认为)

  • 发送到服务器屏幕边界以及屏幕上可见的所有标记ID(我可以选择屏幕范围内的所有标记以及哪些ID不在屏幕范围内)
  • 每次从Android应用程序中删除标记,基本上每次都从服务器重新创建所有标记(我个人认为这是一个糟糕的解决方案)

那么哪些想法最好?还有其他想法吗?(对不起我的英语不好)

android google-maps dynamic

9
推荐指数
1
解决办法
901
查看次数

Android RatingBar矢量图标没有显示

我给出了我想为用户显示RatingBar的布局.我使用自己的自定义图标而不是默认星标.问题是图标是矢量格式,当我使用它时我得到奇怪的效果(见下图)它应该显示5个图标,但它只显示一个为什么是这样? 在此输入图像描述

当我将矢量图像转换为png时,一切都很好 在此输入图像描述

我将在这里添加我的代码我的图标代码(在drawable文件夹中)//empty_rate.xml

//middle_rate.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:viewportWidth="48"
    android:viewportHeight="48"
    android:width="4dp"
    android:height="4dp">
    <group
        android:translateX="117"
        android:translateY="-118.5">
        <path
            android:pathData="M-93 122.5c-11 0 -20 9 -20 20 0 11 9 20 20 20 11 0 20 -9 20 -20 0 -11.1 -9 -20 -20 -20zm0 36c-8.8 0 -16 -7.2 -16 -16 0 -8.8 7.2 -16 16 -16 8.8 0 16 7.2 16 16 0 8.8 -7.2 16 -16 16z"
            android:fillColor="#076127" />
        <path
            android:pathData="M-105.2 142.5c0 -6.7 5.4 -12.2 12.2 -12.2l0 24.3c-6.7 0 -12.2 -5.4 …
Run Code Online (Sandbox Code Playgroud)

android android-layout ratingbar

7
推荐指数
1
解决办法
1187
查看次数

只有在缩放更改后,Android地图标记才会在地图上显示

我做了简单的应用程序,我根据服务器的屏幕坐标得到标记.问题是标记不会立即出现在地图上.用户用户必须放大或缩小才能看到标记.这是为什么?从服务器下载标记数据时是否可以立即显示标记?或者有可能以某种方式刷新地图?我知道在以前的版本中,有一种方法map.invalidate()基本上就是我现在需要的方法.不幸的是,这种方法现在不可用.

我将添加代码片段,以添加我的标记

@Override
        protected void onPostExecute(ArrayList<MarkerItemData> markerItemData) {
            super.onPostExecute(markerItemData);
            if(markerItemData != null) {
                mClusterManager.addItems(markerItemData);
            }
        }
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-markers

7
推荐指数
1
解决办法
1272
查看次数

Android SQLiteDiskIOException磁盘I / O错误(代码522)

昨天来自Crashlytics的我disk I/O error (code 522)在打开数据库时注意到。问题是该崩溃已被16位用户报告了36次。可悲的是我无法重现此错误。这是发生错误的代码片段

SessionDbManager(Context context, String tripDbFileName) {
        this.context = context;
        this.tripDbFileName = tripDbFileName;
        this.tripDbHelper = new SessionDbHelper(this.context, tripDbFileName);
        SQLiteDatabase database = null;
        int attempt = 1;
        while (database == null) {
            try {
                database = this.tripDbHelper.getWritableDatabase(); // here's the error
            } catch (android.database.sqlite.SQLiteException e) {
                Crashlytics.logException(e);
                XLog.e("Failed to load history data from database ", e);
                if (attempt == 5) throw e;
            }
            attempt++;
        }
        db = database;
    }
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪

Fatal Exception: android.database.sqlite.SQLiteDiskIOException: disk I/O error …
Run Code Online (Sandbox Code Playgroud)

java sqlite android

7
推荐指数
0
解决办法
1155
查看次数

保存文件的Android FileOutputStream

这里我如何将字节写入文件。我正在使用FileOutputStream

    private final Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                FragmentActivity activity = getActivity();
                        byte[] readBuffer = (byte[]) msg.obj;
                        FileOutputStream out = null;
                        try {
                            out = new FileOutputStream("myFile.xml");
                            out.write(readBuffer);
                            out.close();
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
           }
}
Run Code Online (Sandbox Code Playgroud)

现在我想打开那个文件,所以我需要有那个文件的路径。那么我需要如何打开该文件?

编辑:

在这里我如何从文件中读取,但我什么也看不到......

BufferedReader reader = null;
                    FileInputStream s = null;
                    try {
                        s = new FileInputStream("mano.xml");
                        reader = new BufferedReader(new InputStreamReader(s));

                        String line = reader.readLine();
                        Log.d(getTag(), line);
                        while …
Run Code Online (Sandbox Code Playgroud)

android file save

5
推荐指数
1
解决办法
2万
查看次数

传递给HasOneOrMany的Laravel Argument 1 :: save()必须是给定的Model数组的实例

我是Laravel的新手,当我尝试将数据数据保存到数据库时,我遇到了问题.这是我得到的错误

传递给Illuminate\Database\Eloquent\Relations\HasOneOrMany :: save()的参数1必须是Illuminate\Database\Eloquent\Model的实例,给定的数组,在S:\ Documents\samdyk\vendor\laravel\framework\src中调用\照明\数据库\ Eloquent\Relations\HasOneOrMany.php在第267行并定义

所以这是我的代码

class Skill extends Model
{
    protected $fillable = ['skill_title', 'knowledge_level'];
}

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function skills() {
        return $this->hasMany(Skill::class);
    }
} …
Run Code Online (Sandbox Code Playgroud)

php model laravel

4
推荐指数
2
解决办法
6714
查看次数