我正在为我的应用程序小部件实现一个小部件透明度选项,尽管我在修复十六进制颜色值时遇到了一些麻烦.作为十六进制颜色透明度的全新,我搜索了一下,虽然我找不到我的问题的具体答案.
我想用十六进制颜色设置透明度,所以让我说我的十六进制颜色ID"#33b5e5",我希望它是50%透明.然后我会使用"#8033b5e5",因为80%是50%.
我在这里找到了一个有用的图表:http://www.dtp-aus.com/hexadeci.htm.有了这些数据,我设法得到了这个:
0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144
Run Code Online (Sandbox Code Playgroud)
现在,当我以十六进制高于100时问题开始出现.十六进制颜色代码只能长8个符号吗?例如#11233b5e5(80%)崩溃.
我能做些什么才能让我使用更高的数字呢?
我正在寻找使用Picasso库从URL下载图像并将其传递到圆形图像视图,但由于毕加索要求您传入实际的图像视图我已经停止了如何做到这一点
我正在使用http://cquare.github.io/picasso/上的picasso库和这里 的圆形图像视图类https://github.com/hdodenhof/CircleImageView
这是获取图像的代码的开始
private void getData() {
userName.setText(prefs.getString("userName",""));
jobTitle.setText(prefs.getString("profile",""));
userLocation.setText(prefs.getString("location",""));
// ??????
// Picasso.with(context).load(image link here).into(imageview here);
//CircleImageView img = new CircleImageView(this);
//img.setImageResource();
//img.setImageBitmap();
//img.setImageDrawable();
//img.setImageURI();
}
Run Code Online (Sandbox Code Playgroud)
编辑:
这是circleImageView的xml
<michael.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/shadow"
android:layout_gravity="center"
android:layout_marginTop="16dp"
app:border_width="2dp"
app:border_color="#274978"
android:id="@+id/circleImageView"
Run Code Online (Sandbox Code Playgroud) 我在Android Studio(1.2)的最新版本的预览窗口中出现以下错误,导致我无法查看我正在创建的布局,我已尝试多次重启android studio以及清理,重建项目和重新启动我的电脑
编辑:
有些项目有相同的错误,而其他旧项目工作正常
The following classes could not be instantiated:
- android.support.v7.internal.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)
Run Code Online (Sandbox Code Playgroud)
例外细节
java.lang.NoClassDefFoundError: android/support/v7/internal/widget/ActionBarOverlayLayout$1
at android.support.v7.internal.widget.ActionBarOverlayLayout.<init>(ActionBarOverlayLayout.java:93)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:413)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105)
at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:177)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:214)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:142)
at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at com.android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.java:84)
at com.android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.java:56)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.createActionBar(RenderSessionImpl.java:1691)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:362)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485)
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:644)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:79)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:586) …
Run Code Online (Sandbox Code Playgroud) 正如标题所示,我正在创建一个允许用户使用指纹身份验证登录的应用程序.我遇到的问题是在哪里存储他们提交的凭据?
流程将是 - >用户首次登录凭证 - >启用指纹身份验证并存储这些凭据 - >验证指纹然后访问存储的凭据.
我想过使用SharedPreferences
但是如果设备是root的,那么这些设备很容易访问.
那么存储这些凭据的最安全,最安全的地方在哪里,以避免在应用程序外部访问它们?
编辑:
我正在使用此包装器来处理指纹认证
https://android-arsenal.com/details/1/4493
我正在创建一个应用程序,其中用户有两个选项来解锁他们的应用程序,一个是使用别针,另一个是使用指纹.为了使用指纹,他们必须首先设置一个引脚,因为这个引脚是解密密钥,以获取其加密的详细信息SharedPreferences
.
所以我在这里遵循了这个教程:http://www.techotopia.com/index.php/An_Android_Fingerprint_Authentication_Tutorial#Accessing_the_Android_Keystore_and_KeyGenerator
我设法让应用程序读取指纹,并说明它是否有效.但是当指纹被授权时,我不知道如何从Android密钥库中获取该指针.
以下是一些演示代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
if (!keyguardManager.isKeyguardSecure()) {
Toast.makeText(this, "Lock screen security not enabled in Settings", Toast.LENGTH_LONG).show();
return;
}
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.USE_FINGERPRINT) !=
PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Fingerprint authentication permission not enabled", Toast.LENGTH_LONG).show();
return;
}
if (!fingerprintManager.hasEnrolledFingerprints()) {
// This happens when no fingerprints are registered.
Toast.makeText(this, "Register at least one fingerprint in Settings", Toast.LENGTH_LONG).show();
return;
}
generateKey();
if (cipherInit()) { …
Run Code Online (Sandbox Code Playgroud) 我在android中有一个布局,需要是一个特定的形状,即:
角落被切断的地方.有没有办法以编程方式执行此操作而无需将布局背景设置为图像?我希望尽可能减小应用程序的大小,因此最大限度地减少应用程序中的drawable数量是必须的.
我创建了一个扩展类,Shape
以便为按钮的背景绘制自定义形状(带有切角的矩形)。我遇到的问题是,绘制为对角线的线条看起来比直线粗得多:
我怎样才能使边框始终保持一致的宽度?我尝试将抗锯齿设置为真/假,但这没有什么区别
public class ShapeMaker extends Shape {
private float STROKE_WIDTH = 20.0f;
private final Paint border = new Paint();
private final Path path;
private float tl = 0; //Top Left
private float tr = 0; //Top Right
private float bl = 0; //Bottom Left
private float br = 0; //Bottom Right
public ShapeMaker(float tl, float tr, float bl, float br, int fillColor) {
path = new Path();
this.tl = tl;
this.tr = tr;
this.bl = bl;
this.br …
Run Code Online (Sandbox Code Playgroud) 我已经编写了这两种排序算法,看起来选择排序比合并排序更快,这肯定不是正确的吗?我的测试数据是10个大小为5000到50000的随机数组,其中数组中最大可能的数字是100这是我的选择排序实现:`int i,j,iMin; int n = c.length;
startTime = System.currentTimeMillis();
for (i = 0; i < n - 1; i++)
{
iMin = i;
for (j = i + 1; j < n; j++)
if (c[j] < c[iMin])
{
iMin = j;
if(sorting)
{
theDelay();
}
}
if (iMin != i)
{
swap(c, iMin, i);
if(sorting)
{
theDelay();
}
}
}
endTime = System.currentTimeMillis();
overallTime = endTime - startTime;
// System.out.println(overallTime);
}`
Run Code Online (Sandbox Code Playgroud)
该theDelay()
方法只是延迟排序算法在其中运行的线程,以便可视化图形可以绘制到JPanel以显示操作中的排序,在此测试用例中它被忽略,因此不会影响我的排序时间.
这是我的合并排序实现:
public void mergeSort(int[] d) throws …
Run Code Online (Sandbox Code Playgroud) 所以我一直在努力解决这个问题,对我而言,我认为没有理由为-0.086167157不是有效的双倍.我只是试图将从API调用返回的字符串值转换为double(经度值)
这是错误消息:
java.lang.NumberFormatException: For input string: "-0.?086167157"
W/System.err: at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
W/System.err: at java.lang.Double.parseDouble(Double.java:547)
W/System.err: at com.google.gson.stream.JsonReader.nextDouble(JsonReader.java:909)
W/System.err: at com.google.gson.Gson$2.read(Gson.java:284)
W/System.err: at com.google.gson.Gson$2.read(Gson.java:278)
W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
W/System.err: at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
W/System.err: at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
W/System.err: at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:25)
W/System.err: at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
W/System.err: at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
W/System.err: at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:112)
W/System.err: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
W/System.err: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err: at java.lang.Thread.run(Thread.java:762)
Run Code Online (Sandbox Code Playgroud)
/
@Parcel(implementations = { LocationRealmProxy.class },
value …
Run Code Online (Sandbox Code Playgroud) 我在尝试编译我的应用程序时遇到问题,即时尝试从拨号程序启动它,清单文件会出现此错误.这是我的清单文件
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<receiver
android:name=".receiver.DialReceiver"
android:exported="true"
android:process=":background"
>
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)