以下两个在仿真器(2.3.3)上工作正常,但在真实设备(带有4.1.2的Nexus S)上没有显示缩略图的图像.我也会尝试运行它Android 4 Emulator.如果我android:src为其设置了默认值ImageView,则不再显示.这让我觉得它被替换了,但是它ImageView是空的.
public class MainActivity extends Activity {
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img_thumbnail);
new MyAsync().execute("http://commonsware.com/misc/test.mp4");
}
//This version is still not working, but it's more readable (edited: Selvin).
public class MyAsync extends AsyncTask<String, Void, Bitmap>{
@Override
protected Bitmap doInBackground(String... objectURL) {
//return ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND);
return ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND), 100, 100);
}
@Override
protected void onPostExecute(Bitmap result){
img.setImageBitmap(result);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道之前已经提出类似的问题, …
我 aws-android-sdk-1.4.3/samples/S3_SimpleDB_SNS_SQS_Demo用来预览存储在亚马逊(亚马逊简单存储服务)上的文件.通过代码我看到他们使用它来访问文件:
com.amazonaws.demo.s3.S3.getDataForObject (line 130)
public static String getDataForObject( String bucketName, String objectName ) {
return read( getInstance().getObject( bucketName, objectName ).getObjectContent() );
}
protected static String read( InputStream stream ) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream( 8196 );
byte[] buffer = new byte[1024];
int length = 0;
while ( ( length = stream.read( buffer ) ) > 0 ) {
baos.write( buffer, 0, length );
}
return baos.toString();
}
catch ( Exception exception ) {
return exception.getMessage(); …Run Code Online (Sandbox Code Playgroud) video android amazon-s3 bytearrayoutputstream amazon-web-services
我productFlavours在我的应用中使用.我也在使用multi dex.
defaultConfig {
multiDexEnabled true
minSdkVersion 17
targetSdkVersion 22
...
}
productFlavors {
prodFlavor1{...}
prodFlavor2{...}
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
...
}
Run Code Online (Sandbox Code Playgroud)
在Application类中:
@Override
public void onCreate() {
MultiDex.install(getApplicationContext());
super.onCreate();
}
Run Code Online (Sandbox Code Playgroud)
我为5以下版本的Android版本添加了以上代码.
然后,下面的结构,有两个略有不同的版本MainActivity(MainActivity扩展AppCompatActivity)在应用程序的某个时刻开始,按下按钮.
app/src/prodFlavor1/.../MainActivity
app/src/prodFlavor2/.../MainActivity
Run Code Online (Sandbox Code Playgroud)
在prodFlavor1,MainActivity之后立即开始SplashActivity.在prodFlavor2,MainActivity.
这之前很长一段时间,甚至在我添加了这部分之后multidex,但突然弯腰工作,没有任何解释.即使我删除了引用multidex的代码,我也会得到同样的东西.
当我切换到prodVersion2一切正常.但当我切换到prodVersion1我得到:
startActivity(new Intent(TutorialActivity.this,MainActivity.class));
适用于Android 6的Nexus 5:
Process: com.mpackage, PID: 30807
java.lang.LinkageError: com.mpackage.activities.MainActivity
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:226)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
at dalvik.system.DexPathList.findClass(DexPathList.java:338)
at …Run Code Online (Sandbox Code Playgroud) Android 2.2(API8):
-GALAXY Tab by Samsung Electronics,
-Real3D by LGE,
-Dual Screen APIs by KYOCERA Corporation,
Android 2.3.3 (API10):
-Dual Screen APIs by KYOCERA Corporation,
Android 3.1(API12):
-Google TV by Google Inc - this says "Not compatible with Windows"
Run Code Online (Sandbox Code Playgroud)
我理解这里,但其他的?我点击"安装包",我可以看到它正在加载和安装.它说"完成",但他们的状态仍然是"未安装".我希望安装所有可用的更新.如果有人知道为什么会发生这种情况以及如何解决,请分享.安装了除Android 4.0之外的所有其他软件包.
我有一个GroundOverlay在我身上GoogleMap,我希望当我在地图上放大/缩小时它的尺寸不会改变.完全像默认地图markers,始终保持其尺寸.我尝试了两种形式,GroundOverlay.setDimensions()但图像仍然在缩放时调整大小.这是我的代码:
Bitmap btm = BitmapFactory.decodeResource(getResources(), R.drawable.map_arrow);
BitmapDescriptor arrow = BitmapDescriptorFactory.fromBitmap(btm);
float w = btm.getWidth();
float h = btm.getHeight();
if (groundOverlay != null) groundOverlay.remove();
groundOverlay = mMap.addGroundOverlay(new GroundOverlayOptions()
.image(arrow).position(meLoc, w,h).bearing(bearAngle));
groundOverlay.setDimensions(1000);
Run Code Online (Sandbox Code Playgroud) android google-maps overlay zooming google-maps-android-api-2
我知道这是互联网上的一些例子,而且在Stackoverflow上我发现了许多例子,但是不相信它们,它们都没有满足我的需求.即使我前几次问过类似的问题,我也再次陷入这个问题.基本上是相同的问题,但方向相反.我可以做任何我想要的动画,Activity B但这里的问题是Activity A我可以在几个场景中制作动画.基本上只在这个组合中ActivityA播放enter_left:
overridePendingTransition(R.anim.enter_from_right, R.anim.exit_on_left);
我想要做的是动画(移动)只是Activity A无论是在startActivity()并onBackPressed()同时Activity B在屏幕上停留不为所动.Activity A总是画在上面(作为一个滑动菜单,我可以这样做Activity B).我真的认为上面的代码片段可以完成这项工作:
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent, 500);
overridePendingTransition(R.anim.stay_still, R.anim.exit_on_left);
Run Code Online (Sandbox Code Playgroud)
但这甚至不播放任何动画
//this is the animation for onBackPressed()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
overridePendingTransition(R.anim.enter_from_left, 0);
}
Run Code Online (Sandbox Code Playgroud)
动画Activity A我想要但Activity B突然从屏幕上消失,我想留下(设置(R.anim.enter_from_left, R.anim.stay_still)什么也不做).
我准备了所有5个必要的动画:
enter_from_left
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" > …Run Code Online (Sandbox Code Playgroud) public static void showNotification(Context ctx, int value1, String title, String message, int value2){
NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(ctx, ActivityMain.class);
int not_id = Utils.randInt(1111, 9999);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
notificationIntent.putExtra("key_1", value1);
notificationIntent.putExtra("key_2", value2);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(ctx.getApplicationContext());
stackBuilder.addNextIntent(notificationIntent);
PendingIntent notifPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
notificationManager.notify(not_id, createNotification(ctx, notifPendingIntent, title, message));
}
Run Code Online (Sandbox Code Playgroud)
这是我发送和显示notification. 我从服务发送这个。正如你所看到的,我发送了 2 个额外的值,目的是(key_1和key_2);当我单击通知时,我应该打开活动并查看按键的value1和。value2
问题是:如果在我打开其中任何一个之前收到另一个通知,value1并且value2该通知被覆盖。例如:
第一个通知发送foo并且bar
第二个通知发送faz并且baz
第三次通知发送fubar和fobaz …
我想只返回一个列的不同值的游标."组"列有更多项目,但只有2个值:1,2,1,1,1,2,2,2,1
String[] FROM = {Groups,_ID};
public Cursor getGroups(){
//......
return db.query(TABLE_NAME,FROM,null,null,null,null,null);
}
Run Code Online (Sandbox Code Playgroud)
将返回一个包含{1,2,1,1,1,2,2,2,1}的游标,但我想只包含{1,2}.
假设我有这个sqlite数据库结构:
ID PRODUCT_NAME AVAILABILITY
1 foo 0
2 bar 1
3 baz 0
4 faz 1
Run Code Online (Sandbox Code Playgroud)
我如何修改fom的值AVAILABILITY- > 0在哪里PRODUCT_NAME = 'bar'?像这样的东西,Pseudocod:
db.execSQL( "UPDATE TABLE" + Table_name + "MODIFY" + availability + "=" + 0 + "WHERE" + product_name + "like ? " + 'bar');
Run Code Online (Sandbox Code Playgroud)
我假设我还必须使用onCreate()和onUpgrade()方法删除并重新创建表,对吧?一些代码将受到高度赞赏.
是否可以在Manifest.xml中监听DownloadManager.ACTION_DOWNLOAD_COMPLETE?
我发现的所有示例registerReceiver(downloadCompleteReceiver,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));均来自 a class,但我希望在 Manifest.xml 中接收它,以便我可以在应用程序关闭时收听。当我尝试在 Manifest.xml 中为接收器设置意图过滤器时,我找不到此操作