Android 图库无法组合自定义标题

Posted

技术标签:

【中文标题】Android 图库无法组合自定义标题【英文标题】:Android gallery cannot combine custom title 【发布时间】:2011-11-18 20:22:55 【问题描述】:

这是我的代码,我正在尝试打开画廊。我收到了上述错误

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import java.io.ByteArrayOutputStream;

public class ChangeUserImageActivity extends Activity 

private static final int SELECT_PICTURE = 1;

private static final int CAMERA_PIC_REQUEST = 1337;
private Bitmap thumbnail = null;
String img = "";

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.changeuserimage);


public void camera_click(View view) 
    Intent cameraIntent = new Intent(
            android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);


public void gallery_click(View v) 
    // select a file
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"),
            SELECT_PICTURE);


private byte[] imagetoArray() 
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    thumbnail.compress(Bitmap.CompressFormat.PNG, 100, stream);
    return stream.toByteArray();


public void backHome_click(View view) 
    Intent myIntent = new Intent(view.getContext(), Tabs.class);
    startActivityForResult(myIntent, 0);


private String decodeUTF8(byte[] bytes) 
    return Base64.encodeToString(bytes, Base64.NO_WRAP);


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    if (resultCode == -1) 
        thumbnail = (Bitmap) data.getExtras().get("data");
        ImageView image = (ImageView) findViewById(R.id.newuserimg);
        image.setImageBitmap(thumbnail);
    



清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.AgricultureTrading"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:label="@string/app_name" android:icon="@drawable/icon">
        <activity android:name="MainActivity"
                  android:label="@string/app_name"
                        android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>            
        </activity>        
                        <activity android:name=".Tabs"  android:label="@string/app_name"
                android:theme="@android:style/Theme.NoTitleBar"></activity>

                <activity android:name=".PestManagementHomeActivity"  android:label="@string/app_name"
                android:theme="@android:style/Theme.NoTitleBar"></activity>
        <activity android:name=".BuySellHomeActivity" 
        android:label="@string/app_name"
                android:theme="@android:style/Theme.NoTitleBar"></activity>
                <activity android:name=".EnvironmentAdviceActivity" ></activity>
        <activity android:name=".ProfileActivity"></activity>
        <activity android:name=".AddPestActivity"></activity>
        <activity android:name=".AddEnvironmentActivity"></activity>
        <activity android:name=".SelectAdviceActivity"></activity>
        <activity android:name=".PestAdviceActivity"></activity>
        <activity android:name=".SellPriceActivity"></activity>
        <activity android:name=".SellActivity"></activity>
        <activity android:name=".AddEventActivity"></activity>
        <activity android:name=".ChangeUserImageActivity" android:theme="@android:style/Theme.Dialog"></activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.CAMERA" />
 <uses-feature android:name="android.hardware.camera" />
 <uses-feature android:name="android.hardware.camera.autofocus" />

</manifest>

错误

16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime  FATAL EXCEPTION: main
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime  java.lang.RuntimeException: Unable to start activity ComponentInfocom.android.gallery/com.android.camera.ImageGallery: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.ActivityThread.access$500(ActivityThread.java:122)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.os.Handler.dispatchMessage(Handler.java:99)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.os.Looper.loop(Looper.java:132)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.ActivityThread.main(ActivityThread.java:4123)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at java.lang.reflect.Method.invokeNative(Native Method)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at java.lang.reflect.Method.invoke(Method.java:491)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at dalvik.system.NativeStart.main(Native Method)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime  Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:204)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2338)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2545)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:219)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.Activity.setContentView(Activity.java:1786)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at com.android.camera.ImageGallery.onCreate(ImageGallery.java:113)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.Activity.performCreate(Activity.java:4397)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)
16:17:28.781    1604    com.android.gallery ERROR   AndroidRuntime      ... 11 more

【问题讨论】:

您是否使用任何样式和主题作为标题并在清单文件中提及? code.google.com/p/android/issues/detail?id=15104 看看这个答案***.com/a/2840407/1223548 使用这个链接..它可能对你有用***.com/questions/12292119/… 【参考方案1】:

请从您的清单文件中删除它 android:theme="@android:style/Theme.Dialog" 为Activity ChangeUserImageActivity 然后试试

【讨论】:

【参考方案2】:

将 onActivity 结果更改为以下:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    if (resultCode == RESULT_OK) 
        if (requestCode == SELECT_PICTURE) 
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
            System.out.println("Image Path : " + selectedImagePath);
            img.setImageURI(selectedImageUri);
        
    

【讨论】:

以上是关于Android 图库无法组合自定义标题的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义控件实例,圆形头像(图库 + 裁剪+设置),上传头像显示为圆形,附源码

Android学习笔记之,调用系统图库,添加自定义字体,屏幕截图

自定义图像裁剪器android

浅谈Android自定义View

Android自定义View的三种实现方式

以自定义尺寸阅读图库视频