[英]How to make a linear layout stick to an ImageView in android?
我有一個吉他指板圖像,上面有我覆蓋的點。 不幸的是,當我滾動圖像時,點不會隨之移動。 抱歉這么長。 這是我弄清楚如何在圖像上實現點的唯一方法。 如果有人對更好的方式來制作圖像有任何想法,我會全神貫注。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/fretboardView"
android:layout_width="match_parent"
android:layout_height="67dp"
android:layout_gravity="center_vertical"
android:src="@drawable/fretboard" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="61dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="44dp" />
<ImageView
android:id="@+id/dot1e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="44dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="44dp" />
<ImageView
android:id="@+id/dot1B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="44dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="44dp" />
<ImageView
android:id="@+id/dot1G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="44dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="44dp" />
<ImageView
android:id="@+id/dot1D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="44dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="44dp" />
<ImageView
android:id="@+id/dot1A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="44dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="44dp" />
<ImageView
android:id="@+id/dot1E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="44dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="19dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot2e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot2B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot2G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot2D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot2A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot2E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="19dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot3e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot3B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot3G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot3D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot3A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot3E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="19dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot4e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot4B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot4G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot4D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot4A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot4E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="19dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot5e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot5B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot5G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot5D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot5A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot5E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="19dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot6e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot6B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot6G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot6D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot6A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot6E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="19dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot7e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot7B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot7G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot7D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot7A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot7E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="21dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot8e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot8B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot8G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot8D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot8A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot8E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="17dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot9e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot9B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot9G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot9D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot9A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot9E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="3dp"
android:src="@drawable/dot" />
</LinearLayout>
<LinearLayout
android:layout_width="18dp"
android:layout_height="match_parent"
android:orientation="vertical">
<Space
android:layout_width="18dp"
android:layout_height="4dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot10e"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="2dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="1dp" />
<ImageView
android:id="@+id/dot10B"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="2dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2.5dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot10G"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="2dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="2dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot10D"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="2dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot10A"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="2dp"
android:src="@drawable/dot" />
<Space
android:layout_width="18dp"
android:layout_height="3dp"
android:layout_marginLeft="3dp" />
<ImageView
android:id="@+id/dot10E"
android:layout_width="18dp"
android:layout_height="7dp"
android:layout_marginLeft="2dp"
android:src="@drawable/dot" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
如果我是你,我會將所有按鈕放在布局中,並將其放入 ScrollView。 這樣,您可以為片段提供背景圖像,並將所有內容一起滾動。
像這樣:
<ScrollView>
<LinearLayout
android:id="@+id/linearlayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/your_image" <!-- place that image in the drawables folder -->
android:orientation="vertical">
</LinearLayout>
</ScrollView>
(請注意,您還必須將滾動視圖放在某個布局中,例如約束布局)
您還可以通過以下方式以編程方式設置背景圖像:
LinearLayout mLayout = (LinearLayout) findViewById(R.id.linearlayout1);
mLayout.setBackground(Image);
I also found this works too.
public LinearLayout mainLayout;
mainLayout = root.findViewById(R.id.fretboardLayout);
@Override
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
getAccelerometer(event);
}
}
private void getAccelerometer(SensorEvent event)
{
float[] values = event.values;
// Movement
float x = values[0];
float y = values[1];
float z = values[2];
final int acceleration = maxX / bitmapWidth * 2;
float accelerationSquareRoot = (x * x + y * y + z * z)
/ (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
long actualTime = event.timestamp;
/*
if( Math.abs(scrollIndex) > 2) // if scroll amount is too much override it and set it to 0
{
x = 0;
}
*/
scrollIndex += x;
fretboardView.scrollBy( (int) x * (int) accelerationSquareRoot * acceleration, 0);
if (accelerationSquareRoot >= 2)
{
if (actualTime - lastUpdate < 200)
{
return;
}
lastUpdate = actualTime;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.