小编Sta*_*kJP的帖子

Android OpenGL ES 2.0屏幕坐标为世界坐标

我正在构建一个使用OpenGL ES 2.0的Android应用程序,而且我遇到了问题.我正在尝试将屏幕坐标(用户触摸的位置)转换为世界坐标.我尝试过阅读和玩弄GLU.gluUnProject,但我做错了或者只是不明白.

这是我的尝试......

public void getWorldFromScreen(float x, float y) {
    int viewport[] = { 0, 0, width , height};

    float startY = ((float) (height) - y);
    float[] near = { 0.0f, 0.0f, 0.0f, 0.0f };
    float[] far = { 0.0f, 0.0f, 0.0f, 0.0f };

    float[] mv = new float[16];
    Matrix.multiplyMM(mv, 0, mViewMatrix, 0, mModelMatrix, 0);

    GLU.gluUnProject(x, startY, 0, mv, 0, mProjectionMatrix, 0, viewport, 0, near, 0);
    GLU.gluUnProject(x, startY, 1, mv, 0, mProjectionMatrix, 0, viewport, 0, far, 0);

    float nearX …
Run Code Online (Sandbox Code Playgroud)

android coordinate-transformation opengl-es-2.0

20
推荐指数
1
解决办法
1万
查看次数

ActionBar选项卡包含多个片段

我一直在尝试更新我的应用程序并开始使用片段,操作栏以及我错过的所有其他UI功能.我知道我可以在一个活动中有多个片段,根据设备有不同的布局和所有好东西,但我正在努力以我想要的方式获得一些标签.我理解如何添加标签,在它们之间切换,但如何在标签中有多个片段?所以例如我基本上有两个屏幕,我希望用户能够轻松地来回切换(为什么我要使用标签).如果我有两个单独的活动,我可以在xml文件中指定它,并使用下面的布局使用setContentView

tab1_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <fragment
        android:name="com.example.tabrefactor.Fragment1"
        android:id="@+id/fragment_1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <fragment
        android:name="com.example.tabrefactor.Fragment2"
        android:id="@+id/fragment_2"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <fragment
        android:name="com.example.tabrefactor.Fragment3"
        android:id="@+id/fragment_3"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

tab2_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <fragment
        android:name="com.example.tabrefactor.Fragment4"
        android:id="@+id/fragment_4"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我可以将第二个布局转换为使用标签,因为它只包含一个片段,但我不确定如何将第一个布局放入单个标签中.这是允许的吗?提前致谢,

Jason Prenger

android android-fragments android-actionbar android-tabs

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

强制lint检查确切语言的翻译

我收到此错误:

"preferences_default_reminder_labels"未翻译成cs,de,es,fr,it,ja,ko,nl,pl,pt,pt-rBR,zh

问题:检查不完整的翻译,其中并非所有字符串都被翻译Id:MissingTranslation

但我的应用程序只需要翻译成英文和俄文.如何调整lint以仅检查en,ru翻译?

android android-lint

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

使用ALPHA_8在Android中保存透明图像

我正在创建一个叠加图像,它将作为一种过滤器位于另一个图像之上,强调我希望用户关注的图像部分.基本上,图像在某些地方只是纯白色,而在其他地方则是透明的,在这些部分之间模糊.

我正在尝试将此图像保存在我的数据库中,但无法使压缩工作.下面是我遇到问题的代码片段.

Bitmap image = Bitmap.createBitmap(width, height, Config.ALPHA_8)
... // create image
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream); // always returns false
Run Code Online (Sandbox Code Playgroud)

我已经尝试将这些图像保存到文件中,但结果相同.交替压缩格式,质量(在JPEGS的情况下)也没有区别.我可以使用的唯一alpha启用格式是ARGB_8888.这对我来说是一个问题,因为我的图像高达1000px x 1000px,所以我需要节省空间.每像素分配4个字节会导致内​​存问题.

在Android上压缩ALPHA_8图像是一个已知问题吗?是否需要设置一组特定的位图选项才能使其正常工作?我环顾了各种各样的互联网,虽然有些人似乎也经历过这种情况,但大多数人似乎只是转向ARGB_8888选项并没有ALPHA_8的解决方案

任何帮助表示赞赏

compression android alpha bitmap

6
推荐指数
0
解决办法
2203
查看次数

Android使用PorterDuff来组合图像

所以我从根本上不了解PorterDuff及其各种模式.我有两个想要合并的图像,一个是航拍图像,另一个是遮盖在天线上的alpha遮罩,所以只有某些部分可以显示.我有一个系统,我可以正确地将掩模覆盖到另一个图像上,只有它通过,但问题是,在这种情况下,我必须有一个背景颜色,我需要它是透明的.(类似于Android中使用黑白alpha蒙版进行高效位图屏蔽的问题)

Bitmap thumbnail = Bitmap.createBitmap(mThumbnailSize, mThumbnailSize, Config.ARGB_8888);
Canvas canvas = new Canvas(thumbnail);

Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawColor(Color.TRANSPARENT);
canvas.drawBitmap(aerial, transformation, paint);

paint = new Paint();
paint.setFilterBitmap(true);
paint.setColorFilter(new PorterDuffColorFilter(Color.WHITE,PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(overlay, transformation, paint);
Run Code Online (Sandbox Code Playgroud)

我觉得我已经尝试了ColorFilter,XferMode的每个组合,甚至以相反的顺序绘制图像,但似乎没有任何效果.我觉得我只是完全误解了PorterDuff模式是如何工作的(基于http://ssp.impulsetrain.com/porterduff.html上的大量信息).

如果有人对如何实现这一点有任何见解,请深入了解我应该使用什么PorterDuff模式,无论我应该使用ColorFilter还是XferMode,我都会非常感激.

提前致谢

android bitmap porter-duff android-bitmap

5
推荐指数
1
解决办法
1157
查看次数