하나의 이미지 뷰 (하나의 비트 맵에 할당 됨)와 페인팅을위한 다른 비트 맵 (투명)이 있습니다. 이 비트 맵과 배경 비트 맵을 동시에 스크롤하여 다른 위치에 칠하는 것이 가능합니다.비트 맵을 스크롤하는 방법은 무엇입니까?
0
A
답변
0
나는 당신이 이미지 위에 그려려고한다는 것을 알고 있습니다. 그런 경우에는 사용자 정의보기를 만들고 BitmapFactory를 사용하여 이미지를 가져옵니다. 비트 맵 객체를 얻은 후에는 복사 메서드를 사용하여 해당 복사본을 뷰의 캔바스에 사용합니다. 이제 사용자 정의보기의 onDraw 메소드를 대체하고 그 위에 아무 것도 그릴 수 있습니다.
이보기를 레이아웃에 추가 할 수 있으며보기가 스크롤됩니다.
편집 : 샘플 코드
이 코드는 도움이 될만한 코드입니다. 나는 모든 코드를 검토 할 시간이 없다. 그러나 귀하의 요구 사항을 이해하려고 노력했습니다.
내가 활동에 대한 코드를 표시하고, 그 XML 및 사용자 정의보기
Activity.java
public class DrawDemo extends Activity {
private FrameLayout container;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.draw_demo_layout);
container = (FrameLayout)findViewById(R.id.sc);
container.addView(new DrawView(this));
}
public void drawHandler(View target){
container.addView(new DrawView(this));
}
public void clearHandler(View target){
if(container.getChildCount() != 1){
container.removeViewAt(container.getChildCount()-1);
}
}
}
draw_demo_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="0dip"
android:id="@+id/sc" android:scrollbars="horizontal"
android:layout_weight="1.0">
<ImageView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/chips"/>
</FrameLayout>
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Draw"
android:onClick="drawHandler"/>
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Clear"
android:onClick="clearHandler"/>
</LinearLayout>
DrawView.java
public class DrawView extends View {
public DrawView(Context context) {
super(context);
setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.FILL_PARENT
,LinearLayout.LayoutParams.FILL_PARENT));
}
public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(Color.RED);
p.setStrokeWidth(5);
canvas.drawLine(50, 50, 100, 150, p);
canvas.drawLine(100, 150, 20, 50, p);
}
}
이 액티비티에는 비트 맵을 보유하는 기본 이미지 뷰가있는 framelayout이 있습니다. 우리는 그 위에 사용자 지정 그리기보기를 추가하고 그 위에 도면을 작성합니다. 도면을 지우려면 drawview를 제거하고 다시 그릴 필요가있는 경우 다른 것을 추가하십시오. 가장 효율적인 방법은 아닙니다. 그러나 시작해야합니다.
관련 문제
- 1. 비트 맵을 정리하는 방법은 무엇입니까?
- 2. 50 % 불투명도의 비트 맵을 그리는 방법은 무엇입니까?
- 3. AS3에서 MovieClip에 비트 맵을 연결하는 방법은 무엇입니까?
- 4. 안드로이드의 맵보기에 비트 맵을 오버레이하는 방법은 무엇입니까?
- 5. WPF에서 비트 맵을 처리하는 방법은 무엇입니까?
- 6. RGB에서 48bpp 비트 맵을 초기화하는 방법은 무엇입니까?
- 7. 비트 맵을 그리는 가장 빠른 방법은 무엇입니까?
- 8. actionscript3 : 비트 맵을 부드럽게하는 방법은 무엇입니까?
- 9. 글꼴에 적합한 비트 맵을 생성하는 방법은 무엇입니까?
- 10. 비트 맵을 첨부하여 작업을 시작하는 방법은 무엇입니까?
- 11. 비트 맵을 원근감으로 페인트하는 방법은 무엇입니까?
- 12. Scala로 비트 맵을 그리는 방법은 무엇입니까?
- 13. 처음 비트 맵을 넣고 캐시에서로드하는 방법은 무엇입니까?
- 14. 비트 맵을 생성하고 그립니다.
- 15. 비트 맵 효과가있는 WPF 요소에서 비트 맵을 렌더링하는 방법은 무엇입니까?
- 16. python : 어떻게 비트 맵을 생성하나요?
- 17. 비트 맵을 HTML에 추가
- 18. 비트 맵을 얻는 방법
- 19. 비트 맵을 문자열로 변환
- 20. 어떻게 비트 맵을 구현합니까?
- 21. 비트 맵을 축소판으로 변환
- 22. 비트 맵을 이미지로 변환
- 23. 비트 맵을 Format24bppRgb로 변환
- 24. 비트 맵을 수직 방향으로 기울이기
- 25. 안드로이드에서 이미지 파일로 비트 맵을 만드는 방법
- 26. Android의 sharedPreferences에서 비트 맵을 저장하고 검색하는 방법은 무엇입니까?
- 27. 원형 이미지 뷰에서 비트 맵을 설정하는 방법은 무엇입니까?
- 28. Objective C를 사용하여 비트 맵을 그리고 화면에 블릿하는 방법은 무엇입니까?
- 29. 비 관리 데이터로 비트 맵을 설정하는 방법은 무엇입니까?
- 30. 쓰기 가능한 비트 맵을 처리하는 방법은 무엇입니까? (WPF)
이미지가 지울 때 (보기에 검은 색으로 표시됨) 이미지가 지워졌을 때만 페인트를 지우고 페인트에 대한 스크롤링이 가능합니다. –
글쎄, 내가 해줄 수있는 간단한 해킹은 framelayout에 2 개의보기를 만드는 것이었다. 기본 뷰는 이미지와 함께 이미지 뷰일 것이고 secondview는 비어있는 비트 맵을 가진 커스텀 뷰가 될 것이고 당신은 그 뷰에 드로잉을 추가하고 원하는대로 비트 맵을 지우지 만 근본적인 이미지 뷰가 보일 것입니다. 바깥 쪽 프레임 레이아웃에 스크롤을 적용합니다. 이것은 해킹처럼 보인다. 단일보기를 사용하고 2 비트 맵을 스태킹하여이 모든 작업을 완료 할 수 있습니다. – blessenm
내 코드를보고 어디서 바꿔야할지 말해주세요. http://dl.dropbox.com/u/38493970/Full.java –