小编Vik*_*tel的帖子

如何在相机捕获的图像上叠加图像或视图

我正在做的是将图像从相机绘制到a canvas,然后将view包含图像的图像转换为a bitmap并将其绘制在画布顶部.然后最终bitmap保存到外部存储器.

问题是canvas似乎是将自身调整为预览窗口大小,而不是保存的图像大小.

以下是我的活动类中的部分,它将捕获的视图合并到摄像机图像的顶部:

        Bitmap myImage = BitmapFactory.decodeByteArray(imageData, 0,
                imageData.length, options);
        Bitmap mutableBitmap = myImage.copy(Bitmap.Config.ARGB_8888, true);

        Paint paint = new Paint();
        Canvas canvas = new Canvas(mutableBitmap);

        view.setDrawingCacheEnabled(true);
        viewCapture = Bitmap.createBitmap(view.getDrawingCache());
        view.setDrawingCacheEnabled(false);
        canvas.drawBitmap(viewCapture, 0, 0, paint);

        fileOutputStream = new FileOutputStream(dir + "/" + imgName + ".jpg");

        BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
        mutableBitmap.compress(CompressFormat.JPEG, quality, bos);
Run Code Online (Sandbox Code Playgroud)

这会将位图保存在捕获的图像之上,但由于尺寸不同,它会偏移到左上角.

我通过在surfaceChanged中执行以下操作来设置不同的大小

  Camera.Parameters p = mCamera.getParameters();
  Camera.Size myBestPreviewSize = getBestPreviewSize(w, h, p);
  p.setPreviewSize(myBestPreviewSize.width, myBestPreviewSize.height);
  Camera.Size myBestPictureSize = getBestPictureSize(w, …
Run Code Online (Sandbox Code Playgroud)

java eclipse android image android-activity

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

如何合并图像并相互施加

假设我上传了两张或两张以上的照片Framelayout.因此,我在这三张照片的三个不同位置上传了三个与同一个人的照片.然后,可以使用Android或Java或Native中的哪些图像处理库来执行某些操作,如图中所示.

我想互相拍多张照片.

这样的东西: -

图片与分层设施

一个想法是:

  1. 在所有这些图片中进行一些分层,并在图片中找到不匹配的区域并合并它们.

如何将多张图片与其他图片合并?通过检查di-similarity并相互合并?

是否有任何第三方Api或一些Photoshop服务可以帮助我进行这些图像处理?

android image-processing android-image

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

将自定义mime类型添加到android中的联系人

我正在尝试为他选择的每个联系人编写一个为用户存储数据的应用程序.我想向每个用户添加一个custom provider(像facebook一样),按下它将打开我的应用程序并允许用户查看存储的数据.我按照本指南创建了一个自定义提供程序:http: //www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/

但是custom provider没有出现在我的联系人列表中,我试图改变我MIME_TYPEvnd.com.google.cursor.item/contact_user_defined_field 那个也没有帮助(当使用第三方应用时它显示我的提供者但没有我的图标)

我的联系定义是这样的:

<ContactsSource xmlns:android="http://schemas.android.com/apk/res/android">
 <ContactsDataKind
  android:icon="@drawable/ic_launcher"
  android:mimeType="vnd.android.cursor.item/vnd.MyPackageName.profile"
  android:summaryColumn="data2"
  android:detailColumn="data3"
  android:detailSocialSummary="true" />
</ContactsSource>
Run Code Online (Sandbox Code Playgroud)

我的相关代码是这样的:

String MIME_TYPE  "vnd.android.cursor.item/vnd.MyPackageName.profile";

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex =ops.size();//(int)Contact_RAW_ID;
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
   .withValue(RawContacts.ACCOUNT_TYPE, null)
   .withValue(RawContacts.ACCOUNT_NAME,null )
   .build());

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
   .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
   .withValue(Phone.NUMBER, "9X-XXXXXXXXX")
   .build());

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)
   .withValue(StructuredName.DISPLAY_NAME, "John Doe")
   .build());  

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,Email.CONTENT_ITEM_TYPE)
   .withValue(Email.ADDRESS, "John Doe")
   .build());

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
   .withValue(Phone.NUMBER, "1234567890")
   .build());

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
    .withValueBackReference(Data.RAW_CONTACT_ID, 0)
    .withValue(Data.MIMETYPE,MIME_TYPE)
    .withValue(Data.DATA1, "Custom …
Run Code Online (Sandbox Code Playgroud)

android mime-types android-contentprovider android-contacts

10
推荐指数
0
解决办法
4834
查看次数

ScrollView内部的FrameLayout

我是Android开发的新手,我有以下问题.我需要在FrameLayout里面使用ScrollView它来使它可滚动.我写了这个

    <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" 
    android:background="#00ff00">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:background="#ff0000">
    </FrameLayout>
   </ScrollView>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我尝试过RelativeLayout并且有效,但我需要使用FrameLayout.有任何想法吗?

layout android

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

在LinearLayout中添加TextView,就像与Gmail地址建议一样的芯片

我一直在创建Chips像Gmail和大多数社交Android应用程序的地址.

我一直在追加值,LinearLayout只要它小于设备宽度就可以正常工作.一旦它的长度超过设备宽度,它就会变得混乱.

如何在每个环境中保持相同的行为?

预期行为:

预期的行为

我得到了什么

在此输入图像描述 在此输入图像描述

代码片段:

<LinearLayout
        android:id="@+id/chipsBoxLayout" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >
<!--Layout to add Chips like Gmail application-->
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,1);
params.setMargins(5, 0, 5, 0);

Iterator<Contact> iterContacts = contacts.iterator();
while(iterContacts.hasNext()) 
{   
  Contact contact = iterContacts.next();
  TextView t = new TextView(MainActivity.this);
  t.setLayoutParams(params);
  t.setPadding(5, 5, 5, 5);
  t.setText(contact.getContactName());
  t.setTextColor(Color.WHITE);
  t.setBackgroundColor(Color.BLUE);
  chipsBoxLayout.addView(t);
}
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

图标选择器不使用PagerSlidingTabStrips

我只PagerSlidingTabStrips与我融为一体Icons.但我selector在图标上没有合作PagerSlidingTabStrips.

XML

<PagerSlidingTabStrip
    android:id="@+id/pager_sliding_tab_strip"
    android:layout_width="fill_parent"
    android:layout_height="45dip"
    android:background="@color/white"
    app:pstsDividerColor="#FFFFA500"
    app:pstsIndicatorColor="#FFFFA500"
    app:pstsTabPaddingLeftRight="14dip"
    app:pstsUnderlineColor="#FFFFA500" />
Run Code Online (Sandbox Code Playgroud)

添加implements IconTabProvider到我的ViewPager工作完美.

public class ViewPagerAdapter extends FragmentPagerAdapter implements IconTabProvider {
    final int PAGE_COUNT = 3;
    private final int[] ICONS = { R.drawable.tab_icon_zname_contacts_selector, R.drawable.tab_icon_zname_friends_selector, 
        R.drawable.tab_icon_zname_call_log_selector };

    @Override
    public int getPageIconResId(int position) {
        return ICONS[position];
    }
}
Run Code Online (Sandbox Code Playgroud)

iconSelector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/tab_icon_zname_call_log_selected" android:state_selected="true"/>
    <item android:drawable="@drawable/tab_icon_zname_call_log" android:state_selected="false"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

如何使图标选择器工作PagerSlidingTabStrips?当选择该选项卡时,我想要带有橙色的图标,但无论如何它都会返回灰色.

结果我得到了

android pagerslidingtabstrip

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

自定义上下文菜单,如pinterest菜单

每当GridView按下项目时,我一直在寻找类似Pinterest菜单的东西.我知道这个问题太广泛了.但是,对问题的小罢工将提供实现这些目标的正确方法.

阙:

如何在GridView项目上实现自定义上下文菜单,如Contacts +或Pinterest Context菜单?

Pinterest上下文菜单 联系人+上下文菜单

尝试:

ArcMenu:但它们取代了Slider Menu或弹出菜单以用于整个应用程序.我想要可以为GridView项创建onFly的菜单.

卫星菜单:与ArcMenu相同,替换滑块菜单或弹出菜单以用于整个应用程序.

请赐教我实现这些行为.

android android-gridview android-contextmenu

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

在Android中使用JDO

我试图找到有关该主题的任何信息; 找不到任何东西.让我觉得奇怪,因为JDO听起来像智能手机应该非常善于做的事情.

你知道JDOAndroid设备,本机或外部应用程序/库是否可行?

android jdo

7
推荐指数
0
解决办法
1073
查看次数

Calllogs返回所有日志调用以及短信日志,如何只过滤呼叫日志?

我想要得到所有Call-Logs excluding SMS但我得到一个合并列表.

如何仅过滤呼叫的呼叫记录?

我正在使用以下代码.

String[] strFields = {
            android.provider.CallLog.Calls.NUMBER, 
            android.provider.CallLog.Calls.TYPE,
            android.provider.CallLog.Calls.CACHED_NAME,
            android.provider.CallLog.Calls.CACHED_NUMBER_TYPE,
            android.provider.CallLog.Calls.DATE
};
String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 

Uri calluri = Uri.parse("content://call_log/calls");
Cursor mCallCursor = getContentResolver().query(
            calluri,
            strFields,
            null,
            null,
            strOrder
);
Run Code Online (Sandbox Code Playgroud)

我正在使用Samsung Note 2进行测试.

android calllog

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

在android中卸载应用程序时调用广播接收器

我想在应用程序上清理我的应用程序创建的垃圾UnInstalling.

使用ManiFest文件: -

在清单文件中添加:

 <receiver android:name="com.netdoers.com.ui.CleanReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REMOVED" >
            </action>
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

创建接收器以捕获 BroadCast Event

public class CleanReceiver extends BroadcastReceiver
{
  public void onReceive(Context context, Intent intent) {
    CustomToast.showToastMessage(context, "Uninstalling Application");
    Log.e("Uninstall", "CleanReceiver Called");
  }
} 
Run Code Online (Sandbox Code Playgroud)

在Java代码: -

 BroadCastReceiver br = new CleanReceiver();
 IntentFilter intentFilter = new IntentFilter();
 intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
 intentFilter.addDataScheme("package");
 registerReceiver(br, intentFilter);
Run Code Online (Sandbox Code Playgroud)

但是在卸载应用程序时,接收器从未被调用过.

Java和Manifest都不会在卸载应用程序时调用Receiver.如何在卸载应用程序时捕获广播事件?

android android-package-managers android-broadcast

6
推荐指数
1
解决办法
7015
查看次数