Tag: 位图

Android – 扩展我的UI以适应所有屏幕尺寸?

到目前为止,我已经尝试了许多将图像缩放到屏幕尺寸的方法,但它们似乎都不适用于我。 我还是java新手,并且拥有适合任何屏幕大小的UI的想法对我来说似乎很陌生。 我正在使用Canvas类绘制位图。 我尝试过创建一个scaledBitmap并且没有看到任何区别。 我想要这样一个简单的主菜单屏幕 这一定是一个非常常见的问题,因为所有应用都需要这样做。 我真的可以使用一些帮助来理解它是如何工作的。 在某些手机上看起来不错,但在其他手机上,图像太大或偏离中心。 我的代码如下。 如果有人可以帮助我在这里,这是一个学期项目即将到期:P谢谢你们! public MainMenu(Context context) { super(context); titleBounds = new RectF(); playBounds = new RectF(); scoreBounds = new RectF(); soundBounds = new RectF(); creditBounds = new RectF(); titlePaint = new Paint(); playPaint = new Paint(); play = BitmapFactory.decodeResource(getResources(), R.drawable.play); playGlow = BitmapFactory.decodeResource(getResources(), R.drawable.playglow); sound = BitmapFactory.decodeResource(getResources(), R.drawable.sound); […]

使用Canvas创建3D立方体

我有一个2d位图,我想将其转换为3d立方体(例如在我的世界中: ) 我设法使用“相机”在3d空间中旋转图像,但我无法理解如何控制它或如何创建一个立方体,任何人都有想法? 请注意我只允许使用canvas而不使用OpenGL。 编辑:这跟我一样接近: 使用此代码: Matrix mMatrix = canvas.getMatrix(); canvas.save(); Camera camera=new Camera(); camera.save(); camera.rotateY(30); camera.getMatrix(mMatrix); mMatrix.preTranslate(-30, 0); mMatrix.postTranslate(30, 0); canvas.concat(mMatrix); canvas.drawBitmap(b, 150, 150, null); canvas.drawBitmap(b, 180, 180, null); camera.restore(); canvas.restore(); canvas.save();

Android颜色更流畅

这有点难以解释我的问题所以我会用几张图片来展示它。 我做了这个位图: 我希望在其中绘制一个光圈,使用以下代码: Rect bounds1 = new Rect(x, y, x+bit.getWidth(), y+bit.getHeight()); for (int i = bounds1.left; i < bounds1.right; i++) { for (int j = bounds1.top; j < bounds1.bottom; j++) { int result=(int) Math.sqrt((x2-i)*(x2-i)+(y2-j)*(y2-j)); if(result= 256) { r = 255; } else if (r = 256) { g = 255; } else if (g = […]

将纹理拆分为拼图块在libgdx中

由于性能问题,我试图将基于Android Canvas的游戏转换为Libgdx。 目前,我必须生成拼图拼图(动态)时遇到问题。 我做了什么:我使用了android位图操作(Path和PorterDuff)并生成了拼图,然后将其输入到AndroidLauncher中的Libgdx Game对象。 问题1 :有没有更好的方法将位图转换为libgdx核心项目中的拼图块。 (见下文) 问题2 :如何创建一个区域来表示拼图。 (基于边界框或宽度/高度的解决方案不适合),以便用户可以在他/她仅触摸该纹理区域时拖动该部分。 问题3 :检测相邻拼图块何时被用户移近彼此的最佳方法。

如何从图库中选择多个图像?

我试图从文件位置选择多个图像。 到目前为止,我已设法选择一个图像,但如何选择两个图像。 Intent intent =new Intent(Intent.ACTION_PICK); intent.setType(“image/*”); startActivityForResult(intent, STEP_4_REQUEST); 然后在onActivityResult(int requestCode, int resultCode, Intent data)方法中进行以下操作: case STEP_4_REQUEST: if (resultCode == RESULT_OK) { Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String filePath = cursor.getString(columnIndex); cursor.close(); Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); }

将位图加载到canvas并在其上绘制

我喜欢制作一个应用程序,比如一个小小的颜料,我必须得到一个位图,在canvas上绘制它,然后绘制它(用figer)…所以,我实际上有这个代码: import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.os.Environment; import android.util.Log; import android.graphics.Bitmap; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; public class DrawView extends View implements OnTouchListener { private Canvas mCanvas; private Path mPath; public Paint mPaint; private ArrayList paths = new ArrayList(); private […]

如何将捕获/图库图像传递给android中的下一个活动

我想传递捕获的摄像机图像并从图库中选择图像,图像应显示在下一个活动中,捕获的图像我的代码工作正常。但是从图库中选择图像图像未显示在活动中.. 第一项活动 protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == REQUEST_CAMERA) { Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); //file path of captured image imagepath = cursor.getString(columnIndex); //file path […]

BitmapFactory.decodeByteArray()始终返回null(手动创建的字节数组)

所以我试图从同事那里获取一些C ++代码,这些代码通过Bluetoth串口抓取图像数据(我使用的是Android手机)。 从数据我需要生成一个位图。 在测试移植的代码之前,我写了这个快速函数来主动生成一个纯红色矩形。 但是,BitmapFactory.decodeByteArray()始终失败并返回null位图。 我已经检查了它可以抛出的两个可能的exeptions并且没有一个被抛出。 byte[] pixelData = new byte[225*160*4]; for(int i = 0; i < 225*160; i++) { pixelData[i * 4 + 0] = (byte)255; pixelData[i * 4 + 1] = (byte)255; pixelData[i * 4 + 2] = (byte)0; pixelData[i * 4 + 3] = (byte)0; } Bitmap image = null; logBox.append("Creating bitmap […]

绘图文本(TimeStamp)覆盖从独立摄像头捕获的图像

我的下面的代码点击打开相机,拍照,从相机获取照片,然后进入imageview。 但是我想拍摄图像并在图像上应用文本(某种时间戳,最好是图像中的时间戳,或者只是系统日期时间)并保存为jpeg。 如果有人能帮助我,那将是非常棒的。 public class PhotoIntentActivity extends Activity { private static final int ACTION_TAKE_PHOTO_B = 1; private static final String BITMAP_STORAGE_KEY = “viewbitmap”; private static final String IMAGEVIEW_VISIBILITY_STORAGE_KEY = “imageviewvisibility”; private ImageView mImageView; private Bitmap mImageBitmap; private String mCurrentPhotoPath; private static final String JPEG_FILE_PREFIX = “IMG_”; private static final String JPEG_FILE_SUFFIX = “.jpg”; private AlbumStorageDirFactory […]

Android Java Bitmap.getPixels返回仅填充-1作为值的数组

我遇到了问题,我基本上想要分析一个Bitmap来找到位图上不是白色的最低像素。 那是因为我想循环遍历位图的每一行像素。 看代码: Bitmap bmp = BitmapFactory.decodeFile(fileName); for(int i = 0; i < bmp.getHeight(); i++){ int[] pixels = new int[bmp.getWidth()]; bmp.getPixels(pixels, 0, bmp.getWidth(), 0, i, bmp.getWidth(), 1); //Now when a look at the pixels array at this point all the values are set to -1 everytime } fileName有效并且加载了位图,我已经仔细检查了它。 此外,像素不能全部具有相同的颜色,因为当我在图像查看器中查看文件时,它看起来像普通图像。 我真的很厌倦这个问题,我正在寻找几个小时,但没有找到任何有用的东西。 我认为它可能与第三个参数有关,即步幅,我仍然不完全理解该参数的用途。 提前致谢