小编Jar*_*ler的帖子

如何在android中获取显示图像的宽度和高度?

这个问题可能看似微不足道,并且多次被问过,但我找不到对我有用的答案.

我有一个ImageViewGLSurfaceView被绘制在上面ImageView,当我按下一个按钮.

对于我,ImageView我传递一个Bitmap并缩小它以避免OutOfMemoryError异常.我ImageView与UI中的其他元素对齐,因此它会拉伸图像以填充宽度/高度(这就是我想要的).

当我从改变ImageViewGLSurfaceView我避开我的形象曾经是我的透明的黑色区域ImageView,因为GLSurfaceView使得UI有一个洞,工作方式不同比平时元素它吸引我的形象,以黑色的背景,我并不需要它,因为我有自定义背景.

我来到了一个解决方案来LayoutParams进行GLSurfaceView编程和我使用的Bitmap宽度和高度,但我结束了一个更小的图像.我需要显示图像的确切宽度和高度 - 而不是ImageView因为它有透明区域.

PS:我不是OpenGL专家,如果你有一个适用于OpenGL的解决方案,请分享.

一个)

 _______________
|               |
|               |
|---------------|          <-
|   transparent |     
|---------------| <-            Entire
|               |               ImageView
|     Image     |   need
|               | only this
|---------------| <-
|   transparent |
|---------------|          <-
|               |
 ---------------
Run Code Online (Sandbox Code Playgroud)

b)

 _______________
|               |
|               |
|---------------| …
Run Code Online (Sandbox Code Playgroud)

android width glsurfaceview imageview layoutparams

12
推荐指数
1
解决办法
883
查看次数

当notifydatasetchanged时,为什么Glide会使项目ImageView闪烁

我使用滑翔3.7.0RecyclerView.刷新(调用notifyDataSetChanged)时,项目视图始终闪烁.

这是我的代码:

Glide
  .with(context)
  .load(filepath)
  .diskCacheStrategy(DiskCacheStrategy.NONE)
  .skipMemoryCache(true)
  .dontAnimate()
  .into(imageview);
Run Code Online (Sandbox Code Playgroud)

当我不使用缓存时,在调用方法ImageViewnotifyDataSetChangedGlide尚未完成加载位图时,它具有空位图.

如果我使用以下代码:

Glide
  .with(context)
  .load(filepath)
  .dontAnimate()
  .into(imageview);
Run Code Online (Sandbox Code Playgroud)

然后项目ImageView不再闪烁(使用缓存).

我想动态更新项目视图,因此我禁用了滑动缓存.

有没有解决这个眨眼错误的解决方案?

非常感谢你!

android blink notifydatasetchanged android-recyclerview android-glide

12
推荐指数
2
解决办法
8164
查看次数

材料设计调色板

谷歌设计了一个调色板.给定一种颜色,我想在Android中动态创建调色板.

平面设计网站上有一个类似的问题和一个开源的javascript解决方案,它生成一个类似的调色板.可以在此处找到每种颜色的因子,并在此stackoverflow答案中找到用于创建颜色的函数.

我用这个答案和项目来生成一个类似于谷歌的调色板.但是,我想要一个能够返回Google生成的确切值的算法(请参阅第一个链接).

问题: Google如何计算材料设计的调色板颜色?


到目前为止我尝试了什么:

基于上面的信息,我创建了这个例子来展示我是如何生成类似的调色板的.再次,我想要确切的值.

import android.app.Activity;
import android.app.AlertDialog;
import android.graphics.Color;
import android.os.AsyncTask;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

import java.lang.ref.WeakReference;
import java.util.LinkedList;
import java.util.List;

/**
 * @author Jared Rummler <jared.rummler@gmail.com>
 */
public class PaletteTask extends AsyncTask<Integer, Void, List<PaletteTask.Shade>> {

  private static int shadeColor(int color, double percent) {
    return shadeColor(String.format("#%06X", (0xFFFFFF & color)), percent);
  }

  private static int shadeColor(String color, double percent) {
    long f = …
Run Code Online (Sandbox Code Playgroud)

android colors material-design

11
推荐指数
2
解决办法
3731
查看次数

是否可以在XML中设置SwipeRefreshLayout的颜色方案?

我正在和我一起工作SwipeRefreshLayout.

我知道如何setColorScheme动态.

是否可以attribute在XML中设置SwipeRefreshLayout 的方案颜色?

java xml android swiperefreshlayout

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

获取接收器的意图过滤器

我正在尝试获取处理android.intent.action.BOOT_COMPLETED其他应用程序的接收器列表.

我只能通过以下方式获取具有该操作的应用:

final PackageManager pm = getPackageManager();
final Intent intent = new Intent("android.intent.action.BOOT_COMPLETED");
final List<ResolveInfo> activities = pm.queryBroadcastReceivers(intent, 0);
for (ResolveInfo ri : activities) {
    Log.i(TAG, "app name: " + ri.loadLabel(pm));
}
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码获取接收器列表:

final List<PackageInfo> packs = pm.getInstalledPackages(PackageManager.GET_RECEIVERS);
for (final PackageInfo p : packs) {
    ActivityInfo[] receivers = p.receivers;
    if (receivers != null) {
        for (ActivityInfo ai : receivers) {
            Log.i(TAG, "receiver: " + ai.name);
        }
    }                   
}
Run Code Online (Sandbox Code Playgroud)

在我得到接收器后,我无法分辨出意图过滤器/动作是什么.如果一个应用程序有两个接收器,我需要知道哪个接收器处理android.intent.action.BOOT_COMPLETED.有没有办法可以获得这些信息?

android broadcastreceiver android-intent

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

从Java Synchronously运行shell脚本

我试图从Java执行Bash Shell脚本,并使用这段代码运行良好.

public void executeScript() {
    try {
        new ProcessBuilder("myscript.sh").start();
        System.out.println("Script executed successfully");
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码异步运行.但我想要实现的是同步执行代码.我希望Java进程等到脚本执行完成后再执行下一批代码.

总而言之,我希望在批处理文件("myscript.sh")完成执行执行"打印语句 - 成功执行脚本" .

谢谢

java bash shell synchronous

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

在尝试注册嵌入式apk的广播接收器时获取"java.lang.reflect.InvocationTargetException"

我的应用程序有一个嵌入式APK,我需要BroadcastReceiver在我的主APK中注册内部APK.

内部APK不会安装在系统上; 我必须动态加载它.所以,我正在使用反射来调用内部APK中的方法,该方法具有注册的代码BroadcastReceiver.内部APK的接收器应该调用相关的广播.

我在尝试注册时遇到错误BroadcastReceiver.是否有可能以BroadcastReceiver这种方式注册,并且功能齐全?下面给出了例外和代码

错误相关日志:

08-24 08:31:26.915: D/MainApp(1957): invoke method
08-24 08:31:26.955: D/InnerApp(1957): Register receiver
08-24 08:31:26.955: W/System.err(1957): java.lang.reflect.InvocationTargetException
08-24 08:31:26.965: W/System.err(1957):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 08:31:26.965: W/System.err(1957):     at java.lang.reflect.Method.invoke(Method.java:515)
08-24 08:31:26.965: W/System.err(1957):     at com.example.ea_mainapp.MainApp.invokeService(MainApp.java:105)
08-24 08:31:26.965: W/System.err(1957):     at com.example.ea_mainapp.MainApp.onCreate(MainApp.java:40)
08-24 08:31:26.965: W/System.err(1957):     at android.app.Activity.performCreate(Activity.java:5231)
08-24 08:31:26.975: W/System.err(1957):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-24 08:31:26.975: W/System.err(1957):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
08-24 08:31:26.975: W/System.err(1957):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
08-24 08:31:26.975: W/System.err(1957):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
08-24 08:31:26.975: W/System.err(1957):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
08-24 08:31:26.975: …
Run Code Online (Sandbox Code Playgroud)

java reflection android dynamic

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

如何在对话框中显示相应的图标

我有一个允许用户删除视频文件的应用程序.当我按下删除按钮时,我正在使用

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        switch (which) {
        case DialogInterface.BUTTON_POSITIVE:
            // mycode........
            break;
        case DialogInterface.BUTTON_NEGATIVE:
            // mycode.....
            break;
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

但是这个消息没有我们在Android设备中看到的警告或删除图标.任何人都可以帮助我获取这些图标或使用任何其他可以显示这些图标的警报对话框吗?

icons alert android dialog

8
推荐指数
2
解决办法
3万
查看次数

对ListView项的涟漪效应

我是Android开发的新手.我正在尝试开发适用于Android的短信应用.我成功阅读了收件箱和联系人并将其显示在一个ListView项目中.现在,我想要实现的是ListView每次点击或触摸或选择这些项目时都会产生连锁反应.我使用listSelector但似乎它不起作用.如果有人可以帮助我,下面是我的代码:

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/msglist"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawSelectorOnTop="true" 
        android:listSelector="#777777" />
Run Code Online (Sandbox Code Playgroud)

android android-layout android-activity

8
推荐指数
1
解决办法
7981
查看次数

Android MVP WeakRefrence

在mvp中,我们在弱引用中保存该活动的引用. WeakReference<Activity> view = new WeakReference<Activity>(activity); 如果我们失去参考.我们能把它拿回来吗?

mvp android weak-references

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