当前位置: 首页 > 知识库问答 >
问题:

设置Imageview位置和旋转

边健
2023-03-14

所以我在图像视图上做了一些旋转和翻译。据我所知,图像视图并没有真正在任何一个位置之后,你必须在动画完成后将其实际移动到那里。所以我尝试移动的图像视图称为标记,它设置在其原始位置和LocationOnScreen(TokenPos);有它的起始位置。移动或翻译后,我调用resetToken来处理移动或旋转。这似乎有一半的时间完成了预期的结果...不确定我做错了什么,但它与我想要的方式不一致。

public void resetToken() {   
    //Decode Image using Bitmap factory.
    Bitmap bMap = Bitmap.createBitmap(token.getDrawingCache());

    Matrix matrix = new Matrix();
    matrix.postRotate(0);

    //move the token to the spot it needs to be in
    //after an animation the token is not really
    //in the new spot
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(token.getWidth(), token.getHeight());
    lp.setMargins(tokenPos[0], tokenPos[1], 0, 0);

    //Create bitmap with new values.
    Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, token.getWidth(), token.getHeight(), matrix, true);
    token.setImageBitmap(bMapRotate);
    token.setLayoutParams(lp);
    //put rotated image in ImageView.


    moveCounter = moveCounter + 1;

}

共有1个答案

芮立果
2023-03-14

我可以这样做。

public void resetToken() {   

    Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.robo);
    Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas tempCanvas = new Canvas(bmResult); 
    tempCanvas.rotate(currentMapDirection, token.getWidth(), token.getHeight());
    tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(token.getWidth(), token.getHeight());
    lp.setMargins(tokenPos[0], tokenPos[1], 0, 0);

    token.setLayoutParams(lp);

    token.setImageBitmap(bmResult);


}
 类似资料:
  • 问题内容: 我有一个JSON URL :: JSON STRUCT :: RestaurantDescPhotos.java RestaurantDescPhotos.xml ImageLoader.java 我在XML中有一个imageview 如何设置JSONURL的图像视图 我已经编码了该类的某些部分,但是试图知道如何设置imageview 有任何想法吗 问题答案: 您可以使用ImageLo

  • 我有一个旋转器,我想在这个上面设置一个键和一个值,我使用HashMap,这是工作,但显示一行,如下所示: 代码:

  • 当我运行我的应用程序时,我有“应用程序启动方法[警告]java.lang.reflect.InvocationTargetException异常”。我尝试使用fxml路径但仍然不起作用。当使用try/catch时,我有“位置未设置错误”。 我还得到了“未能在项目Test-generator-Maven上执行目标org.codehaus.mojo:exec-maven-plugin:1.2.1:ja

  • 问题内容: 我正在使用下面的代码将UIImageViews旋转到不同的角度。 有什么方法可以使图像从顶部而不是中间旋转? 我想避免涉及Sprite,因为我从未使用过Sprite,也不知道如何使Sprite在单个视图应用程序中工作。谢谢你的时间。 问题答案: 您正在寻找的是视图图层的anchorPoint属性。此属性基本上表示在视图四处移动时使用的 句柄 。 它默认为视图的中心,这就是为什么总是看到

  • 问题内容: 如何跳到 HTML5音频 元素中的特定时间偏移? 他们说您可以简单地设置其属性(重点是我的): 该属性在获取时必须返回以秒为单位的当前播放位置。 设置时 ,如果媒体元素具有当前媒体控制器,则它必须引发INVALID_STATE_ERR异常;否则,它将抛出INVALID_STATE_ERR异常。否则,用户代理必须寻求新值(这可能会引发异常)。 las,它似乎不起作用(我需要在Chrome

  • 我在尝试运行我的代码时遇到了这个错误,这是一个简单的javafx代码来加载一个fxml文件,我尝试了我在这里找到的解决方案,但没有一个对我有效。很抱歉,如果格式不是很好,这是我在这里的第一个帖子,并且很抱歉,如果我在屠杀语言,英语不是我的第一语言。提前道谢! 这是事情的组织方式