如何在页面更改时获取URL,使用CustomTabsClient?
例如,WebView有一个方法:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){}
Run Code Online (Sandbox Code Playgroud)
我需要一个类似的方法CustomTabs.
我找到了这个:
mClient.newSession(new CustomTabsCallback(){
@Override
public void onNavigationEvent(int navigationEvent, Bundle extras) {
super.onNavigationEvent(navigationEvent, extras);
}
@Override
public void extraCallback(String callbackName, Bundle args) {
super.extraCallback(callbackName, args);
}
});
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否是我需要的.
我想用这个设备计算所有缓存的总和.为此,我得到一个编译时间错误:
IPackageStatsObserver cannot be resolved to a type
Run Code Online (Sandbox Code Playgroud)
我在代码中提到了这个错误2次:
public long totalCacheSize(){
totalSize=0;
PackageManager packageManager = getApplicationContext().getPackageManager();
/* List<PackageInfo> packs = packageManager
.getInstalledPackages(PackageManager.GET_ACTIVITIES);*/
// PackageManager.GET_META_DATA
List<PackageInfo> packs = packageManager
.getInstalledPackages(PackageManager.GET_META_DATA);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
Method getPackageSizeInfo;
try {
getPackageSizeInfo = packageManager.getClass()
.getMethod("getPackageSizeInfo",
String.class, Class.forName("android.content.pm.IPackageStatsObserver"));
getPackageSizeInfo.invoke(packageManager, p.packageName,
new IPackageStatsObserver.Stub() { //error
public void onGetStatsCompleted(
PackageStats pStats, boolean succeeded)
throws RemoteException {
totalSize = totalSize + pStats.cacheSize;
Log.d("size", totalSize+"");
Toast.makeText(getApplicationContext(), "size"+totalSize, Toast.LENGTH_SHORT).show(); …Run Code Online (Sandbox Code Playgroud) 我使用 Android Studio 在我的手机上运行我的应用程序,它运行良好。但是应用程序本身从未安装过......菜单中没有它的图标。每当我想测试我的应用程序时,我都必须“运行”。我没有错误。
我相信我的清单有问题。我在这里做错了什么?:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jb854.eda.kent.ac.uk.edanews">
<uses-feature
android:name="android.software.leanback"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name=".EDANewsApplication"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".activity.MainActivity"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http" android:host="www.eda.kent.ac.uk" android:pathPrefix="/school/"/>
</intent-filter>
</activity>
<activity
android:name=".activity.CommentsActivity"
android:theme="@style/AppTheme.TransparentActivity" />
<activity
android:name=".activity.ArticleActivity"
android:theme="@style/AppTheme.TransparentActivity" />
<activity
android:name=".activity.FullscreenImageActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_fullscreen_image"
android:theme="@style/AppTheme.TransparentActivity" />
<activity
android:name=".activity.FavouritesActivity"
android:label="@string/title_activity_favourites"
android:theme="@style/AppTheme.TransparentActivity" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud) 我有这个代码来交叉淡化ImageView的背景:
private void setWithCrossfade(Bitmap bitmap) {
//create drawable vector
Drawable backgrounds[] = new Drawable[2];
//getting first image
backgrounds[0] = mImageView.getDrawable();
backgrounds[1] = new BitmapDrawable(mImageView.getResources(), bitmap);
TransitionDrawable transitionDrawable = new TransitionDrawable(backgrounds);
transitionDrawable.setCrossFadeEnabled(true);
mImageView.setAdjustViewBounds(false);
mImageView.setImageDrawable(transitionDrawable);
//it is needed to reset scale type
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//start crossfading
transitionDrawable.startTransition(250);
}
Run Code Online (Sandbox Code Playgroud)
ImageView scaleType设置为centerCropXML布局.但是,当交叉淡入淡出完成时,新位图设置为fitXY.在其他线程中,他们说可以通过重置来解决scaleType,但它也不起作用.在内存方面,调整位图大小不是一个合适的解决方案.有没有解决方法来实现这个?非常感谢你.
PS:请不要建议交叉淡化2个ImageViews,或者使用ViewSwitcher谢谢.
android android-animation transitiondrawable android-drawable android-bitmap
以前在Android Auto应用程序中,我可以打开自动应用程序并点击标题图像大约10次,然后您将收到一条Toast消息,告诉您可以从溢出菜单访问开发人员模式.但是由于更新,我无法再开启开发者模式了.有新的方法吗?
它使用的是像这样,但现在应用程序被更新,还有一个头形象,但低于它,如图所示,现在麦克风点击时什么也不做:
我正在尝试制作两种风格的应用程序。
摇篮:
defaultConfig {
applicationId "be.myname.firstapp"
minSdkVersion 15
targetSdkVersion 23 }
productFlavors {
raterate {
applicationId = "be.myname.firstapp"
}
scarsforlife {
applicationId = "be.myname.secondapp"
}
}
Run Code Online (Sandbox Code Playgroud)
我的主文件夹、fistapp 文件夹和 secondaryapp 文件夹中有一个 AndroidManifest。
第一个文件夹中的包名称:be.myname.fistapp,第二个文件夹中的包名称:be.myname.secondapp。
在主文件夹中,我首先有:be.myname.firstapp,但这与 be.myname.secondapp 冲突。现在我尝试了:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="${packageId}">
</manifest>
Run Code Online (Sandbox Code Playgroud)
并得到这个:
Attribute manifest@package at AndroidManifest.xml:3:5-27 requires a placeholder substitution but no value for <packageId> is provided.
AndroidManifest.xml Error:
Overlay manifest:package attribute declared at AndroidManifest.xml:3:5-45 value=(be.myname.secondapp)
has a different value=(be.myname.secondapp) declared in main manifest at AndroidManifest.xml:3:5-27
Suggestion: remove the …Run Code Online (Sandbox Code Playgroud) 我想将imageview更改为黑白,而不是drawable.这样做的原因是因为用户拍摄照片并在图像视图中显示如果你知道如何做到这一点,我很感激,谢谢.
package com.example.triptych4;
import java.io.File;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
// label our logs "CameraApp3"
private static String logtag = "CameraApp3";
// tells us which camera to …Run Code Online (Sandbox Code Playgroud) 完成我的项目后,我发现android studio项目dump.txt里面有一个巨大的(55 MB)文件app\build\outputs\mapping\release.我用谷歌搜索,发现这是来自ProGuard.
现在,我的问题是,如果我删除该文件,会有任何问题吗?它使我的整个项目大小超过100 MB
我需要在我的应用程序内部了解蓝牙是打开还是关闭.或者,如果从操作系统设置下拉菜单打开或关闭蓝牙.我以为我可以在活动中做到这一点onResume().但事实证明,当Android操作系统的设置"下拉菜单"(通过用手指从屏幕的上边缘拉下来访问的菜单)打开时,活动不会暂停.
当蓝牙可用或不可用时,我需要更新我的UI.
我可以注册回拨(例如a BroadcastReceiver)或任何其他回调,让系统告诉我蓝牙可用性何时发生变化?
如何获得应用程序的大小,包括AppData的大小?
目前我使用此代码,但它只获取APK大小.有没有办法获得AppData的大小,就像谷歌设置应用程序那样?
public String getApkSize(Context context, String packageName) {
try {
float value = new File(context.getPackageManager().getApplicationInfo(packageName, 0).publicSourceDir).length() / 1048576F;
if (value <= 0) {
value = 1;
}
return String.format("%.2f", value) + "MB";
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud) android ×10
java ×2
sdk ×2
android-auto ×1
bluetooth ×1
intentfilter ×1
manifest ×1
proguard ×1
size ×1